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。