生成变更日志作为npm version command

我喜欢构建小型的,有针对性的模块,这些模块每天频繁发布,并且经常发布多次。 因此,对我来说至关重要的是要有一个使我感到自信并且高度自动化的发布过程。 我将npm用作构建工具,因此每个模块都附带了必要的所有开发工具,这些工具可以使用npm脚本编写代码并运行测试。 当我开始为JavaScript Studio项目构建前几个模块时,我希望发布过程适合此模型。
许多模块作者已经使用npm版本来准备其发行版。 例如,当您运行npm version minor ,npm会在package.json文件中更改次要版本,并使用新版本号作为提交消息来创建版本提交。 使用npm很自然地适合我的需求,但是我想根据提交历史记录编写发行说明,并将其添加到发行提交中。 这正是@studio/changes模块允许我执行的操作。
@ studio / changes
作为npm版本命令 www.npmjs.com的一部分生成变更日志
它是如何工作的?
您可以通过两个步骤将更改模块添加到发布过程中:
-
npm install @studio/changes --save-dev - 在您的package.json中添加一个
version脚本,该脚本只需调用changes(npm已使其在PATH上可用 ) 。
而已! 现在,只需运行npm version [patch|minor|major] ,您的默认文本编辑器将使用您现有的或新的CHANGES.md文件打开。 它将以版本号和更改列表作为新标题,并以您的提交日志为起点进行填充。 完成发行说明的编辑后,只需保存并关闭编辑器,然后CHANGES.md文件将添加到版本提交中。
更自动化!
npm version命令调用以下脚本:
- 在package.json文件更改之前调用
preversion。 我们可以使用它来运行npm test,以便在测试未通过的情况下中止发布过程。 请注意,这还将触发可用于运行lint的任何前pretest或posttest脚本。 - 在package.json文件更改之后,npm创建提交之前立即调用
version。 - 提交
postversion调用postversion。 要完全自动化发布过程,您甚至可以在此处运行git push --follow-tags && npm publish。
这就是所有的样子:
“脚本”:{
“ preversion”:“ npm test”,
“ version”:“变更”,
“ postversion”:“ git push --follow-tags && npm发布”
},
“ devDependencies”:{
“ @ studio / changes”:“ ^ 1.0.0”
}
在postversion脚本中进行推送和发布可能看起来非常激进,但这就是问题所在:当您的编辑器使用CHANGES.md文件打开时,它充当了确认,就像编辑git commit消息一样。 如果要中止发行,只需删除带有版本标题的行。 更改脚本将以非零的退出代码退出,从而导致npm中止发行。
现在,您唯一需要记住的发布npm version命令就是npm version ,其他所有事情都会自动发生。 不用说@studio/changes本身就是这样发布的🤓
