前言
前端领域的技术日新月异,一个好的项目需要良好的规范和文档,而 changelog 就是其中非常重要的一部分。@marionebl 出品的 npm 包 conventional-changelog-cli
可以根据规范自动生成 changelog,大大提高了文档生成的效率和准确度,本文就会详细介绍该包的使用以及如何配置规范。
什么是 changelog
Changelog 又称版本记录,是一种文档格式,可以记录一个软件或者项目的版本变更情况。通常包含以下信息:
- 版本号:可以是数字、字母或者其他自定义形式。
- 发布日期:记录该版本的发布日期。
- 变更内容:包含新增功能、修改、删除功能或者有关安全或者性能的调整等。
- 安装说明:详细说明该版本如何安装和部署。
什么是 conventional commit 规范
Conventional commit 规范是一种规范化的 commit message 内容格式。它有利于自动化生成 changelog、自动化版本发布、自动化语义化版本控制等。在 Conventional commit 规范中,每个 commit message 都由三部分组成:type、scope 和 subject。
其中,type 为 commit 的类型,常见的有以下七种:feat、fix、docs、style、refactor、test 和 chore。具体解释如下:
- feat:新功能
- fix:修复 bug
- docs:仅仅修改了文档,比如 README、CHANGELOG、CONTRIBUTE 等等
- style:修改了空格、格式、缺少分号等,适用于不影响代码功能的情况
- refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)
- test:新增、修改测试用例
- chore:构建过程或者辅助工具的变动
scope 是可选项,用来说明该 commit 的影响范围。subject 是 commit 的简短描述。
比如:
feat(search): 用户可以在搜索框中输入关键字进行搜索 # type(scope): subject
如何使用 @marionebl/conventional-changelog-cli
安装
// npm 5.x 及以上版本 npm install -g conventional-changelog-cli // npm 4.x 及以下版本 npm install -g conventional-changelog-cli --save-dev
使用
// 生成最新的 changelog conventional-changelog -p angular -i CHANGELOG.md // 生成指定版本的 changelog conventional-changelog -p angular -i CHANGELOG.md --release-count 0
参数说明:
-p
:指定使用的 commit 规范,angular 为一个非常流行的规范,你也可以使用其他规范。-i
:指定需要写入 changelog 的输出文件,在这里我们指定CHANGELOG.md
文件。--release-count
:指定需要生成 changelog 的版本数,这里我们指定为 0,表示生成最近的 changelog。
配置 conventional commit 规范
在使用 conventional-changelog-cli
进行 changelog 生成之前,需要先设置规范。
- 安装必要的依赖:
npm install --save-dev husky npm install --save-dev @commitlint/cli @commitlint/config-conventional
- 在
package.json
中添加以下配置:
"husky": { "hooks": { "commit-msg": "commitlint -e $GIT_PARAMS" } }, "commitlint": { "extends": ["@commitlint/config-conventional"] }
这里,我们使用了 husky
将需要使用的 commitlint
钩子自动挂载,同时配置使用 @commitlint/config-conventional
规范。
安装 VSCode 插件及其依赖
继续编辑
.vscode/settings.json
添加以下代码
"git.path": "C:\\Program Files\\Git\\bin\\git.exe", "editor.minimap.enabled": false
示例代码
// 安装 npm install -g conventional-changelog-cli // 生成最新的 changelog conventional-changelog -p angular -i CHANGELOG.md
结语
通过本文的介绍和示例代码,相信大家已经掌握了 @marionebl/conventional-changelog-cli
的使用方法和规范设置,更多详细用法请参照官方文档。规范的 commit message 对于团队协作和项目管理极为重要,希望本篇文章能够对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bca967216659e244623