发布 GENEREADME
对于本周的实验室,我现在要发布 GENEREADME。
克莱布恩特拉
/
基因自述文件
GENEREADME 是一个命令行工具,它接收源代码文件并生成 README.md 文件,该文件利用 LLM 解释文件中的代码。
贡献
欢迎为 GENEREADME 做出贡献!请查看 CONTRIBUTING.md 以获取有关设置环境、如何运行和测试该工具以及提交更改的指南。
GENEREADME
GENEREADME 是一个命令行工具,它接收文件、处理它并生成一个 README 文件,其中包含文件内容的解释或文档。该工具利用 OpenAI 聊天完成来分析文件并生成内容。
用法
通过运行以下命令安装该工具:
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
使用现有示例文件运行该工具或开始使用您自己的:
过程
发布工具本身一点也不麻烦,但是,我必须采取一些额外的步骤来确保正确发布。
研究
在关注发布过程之前,我花了一些时间研究将包发布到 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中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。
