首页 > web前端 > js教程 > 发布 GENEREADME

发布 GENEREADME

Mary-Kate Olsen
发布: 2024-12-06 09:09:09
原创
451 人浏览过

对于本周的实验室,我现在要发布 GENEREADME。

Releasing GENEREADME 克莱布恩特拉 / 基因自述文件

GENEREADME 是一个命令行工具,它接收源代码文件并生成 README.md 文件,该文件利用 LLM 解释文件中的代码。

贡献

欢迎为 GENEREADME 做出贡献!请查看 CONTRIBUTING.md 以获取有关设置环境、如何运行和测试该工具以及提交更改的指南。

GENEREADME

GENEREADME 是一个命令行工具,它接收文件、处理它并生成一个 README 文件,其中包含文件内容的解释或文档。该工具利用 OpenAI 聊天完成来分析文件并生成内容。

Releasing GENEREADME

用法

通过运行以下命令安装该工具:

npm i -g genereadme
登录后复制
登录后复制
登录后复制
进入全屏模式 退出全屏模式

该工具目前支持 Groq 和 OpenRouter,默认使用 Groq。必须提供相应提供商的有效 API 密钥。

通过创建 .env 文件或在使用命令时通过 -a 或 --api-key 标志来提供有效的 API 密钥:

API_KEY=API_KEY

or

genereadme <files> -a API_KEY
genereadme <files> --api-key API_KEY
登录后复制
登录后复制
登录后复制

使用现有示例文件运行该工具或开始使用您自己的:

在 GitHub 上查看

过程

发布工具本身一点也不麻烦,但是,我必须采取一些额外的步骤来确保正确发布。

研究

在关注发布过程之前,我花了一些时间研究将包发布到 npm 注册表的最佳实践和步骤。这是我学到的:

1。如何将包发布到 npm
为了了解基本流程,我参考了 npm 官方文档。本指南概述了基本步骤,包括设置 package.json、运行 npm 发布和管理版本。

2。使用语义版本控制
版本控制在向用户发出变更信号方面发挥着至关重要的作用。我研究了语义版本控制的原理,它使用 MAJOR.MINOR.PATCH 格式来描述重大更改、新功能和错误修复。这确保了我的工具每个版本都有一个有意义的版本号。

3。管理 .npmignore
我研究了如何有效地使用 .npmignore 文件来确保我的 npm 包仅包含最终用户必需的文件。通过仔细创建此文件,我能够排除已发布的包中不需要的特定于开发的文件,例如配置文件、测试和文档。这不仅减小了软件包的大小,而且通过只关注用户运行该工具实际需要的内容,使其更加专业。正确管理 .npmignore 是准备完善版本的关键步骤。

发布

完成研究后,我仔细检查了所有要求、任何可能的错误以及任何失败的测试。
在我看来一切顺利后,我继续通过运行来发布包:

npm i -g genereadme
登录后复制
登录后复制
登录后复制

注意:运行此命令将要求用户通过运行以下命令登录其 npm 帐户:

API_KEY=API_KEY

or

genereadme <files> -a API_KEY
genereadme <files> --api-key API_KEY
登录后复制
登录后复制
登录后复制

测试

现在我已经发布了 GENEREADME v1.0.0,是时候请一些最终用户测试该包是否有效。
正如预期的那样,有一些错误得以解决。一种不会影响工具的性能,另一种会真正破坏工具的性能。

调整

版本命令错误

发现的简单错误与使用命令genereadme -v有关。此命令应打印工具的名称和当前版本。但是,我编码这部分的方式是从当前目录中的 package.json 中检索项目名称和版本。这意味着,如果最终用户运行此命令,它将显示 THEIR 项目的名称和版本,而不是我的。因此,这是一个简单的修复,只需确保它始终从正确的项目中检索它。

输出目录错误

现在这是一个错误,破坏了在我的本地测试中技术上有效的工具,但我忘记了一个简单的测试用例。
项目的文件夹结构只考虑了开发人员和贡献者,因此项目中应该有输出文件夹,我也将其推送到包含输出示例结果的主存储库。

现在,我必须记住,对于最终用户来说,它会略有不同。
以前,代码编写为仅写入outputs/目录,而不检查其是否存在,如果不存在则创建一个。这导致对已发布包的手动测试失败,因为最终用户没有outputs/目录,如果它不存在,该工具将失败而不是创建一个。

有了这个发现,我觉得很简单吧?
直到我尝试推动更改,心想“好吧,问题解决了!”但令我惊讶的是,我的 CI 失败了!

罪魁祸首:

npm i -g genereadme
登录后复制
登录后复制
登录后复制

这就是我检查和创建outputs/目录的方式。然而,在我的端到端测试中,我嘲笑 fs.existsSync() 返回 false 值,原因如下:

API_KEY=API_KEY

or

genereadme <files> -a API_KEY
genereadme <files> --api-key API_KEY
登录后复制
登录后复制
登录后复制

这个函数检查使用 fs.existsSync() 的 toml 配置文件,我不想使用 toml 配置文件进行端到端测试,我模拟这个方法返回 false,现在是与我所做的错误修复相冲突。

我还没有掌握模拟,也没有找到在不同条件下为同一方法制作不同模拟值的方法。因此,在我了解该过程之前,我进行了临时修复,以确保在每个测试用例之前删除outputs/目录。

npm publish
登录后复制

基因自述文件 v1.0.4

我制作的重要补丁到此结束! GENEREADME 现已可供使用!

以上是发布 GENEREADME的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板