目录
用法
首页 web前端 js教程 发布 GENEREADME

发布 GENEREADME

Dec 06, 2024 am 09:09 AM

对于本周的实验室,我现在要发布 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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1280
29
C# 教程
1257
24
Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

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

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

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

JavaScript在行动中:现实世界中的示例和项目 JavaScript在行动中:现实世界中的示例和项目 Apr 19, 2025 am 12:13 AM

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

了解JavaScript引擎:实施详细信息 了解JavaScript引擎:实施详细信息 Apr 17, 2025 am 12:05 AM

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

Python vs. JavaScript:开发环境和工具 Python vs. JavaScript:开发环境和工具 Apr 26, 2025 am 12:09 AM

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

C/C在JavaScript口译员和编译器中的作用 C/C在JavaScript口译员和编译器中的作用 Apr 20, 2025 am 12:01 AM

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

Python vs. JavaScript:比较用例和应用程序 Python vs. JavaScript:比较用例和应用程序 Apr 21, 2025 am 12:01 AM

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

从网站到应用程序:JavaScript的不同应用 从网站到应用程序:JavaScript的不同应用 Apr 22, 2025 am 12:02 AM

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

See all articles