conventional-changelog
是一个根据 Git
记录自动生成 changelog
的工具。
笔者初次是在尤大写的register-service-worker库中接触到该工具。
本文以 conventional-changelog-cli@^4.1.0 版本为例。
1.使用步骤
安装
conventional-changelog-cli@^4.1.0
定义
scripts
json
{
"scripts": {
"prepublishOnly": "conventional-changelog -p angular -i CHANGELOG.md -s"
}
}
- 执行
npm run prepublishOnly
就会写入changelog
日志
2.参数详解
conventional-changelog -p angular -i CHANGELOG.md -s
命令会读取 package.json
中的版本,根据 angular
规范,将截止到上一次 tag
的所有 commit
输入到指定文件中。
其中:
-p
代表preset
,即使用angular commit
规范。-i
代表infile
,即从CHANGELOG.md
文件中读取日志。-s
代表same-file
,即输出文件也是CHANGELOG.md
。
假设项目的 git
操作树为 tag1 => tag2 => tag3 => commits
,
执行 prepublishOnly
后,会读取 package.json
版本,根据 angular
规范将 commits
输出到指定文件中。
此外,还可以设置一个参数:
-r
代表release-count
,默认是1
,因此读取上例中的commits
;如果设置为2
,则会读取tag3
和commits
;以此类推。
如果 -r
设置为 0
,则会读取所有日志,即本例中的 tag1 tag2 tag3 commits
。