用 conventional 来做 changelog 的简单配置说明

# 用 conventional 来做 changelog 的简单配置说明

# 日志操作相关命令

// 全局安装conventional-changelog commitizen
npm install -g conventional-changelog commitizen

// 提交代码
git cz

// 打tag自动生成changelog
npm version [major|minor|patch]

以下是在阮一峰基础上的扩展http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html (opens new window)

# cz-customizable (opens new window)

分类别添加 scope

  • 安装
// 之前要安装commitizen
// install
npm install cz-customizable --save-dev
  • 添加 package.json 配置
...
"config": {
  "commitizen": {
    "path": "node_modules/cz-customizable"
  },
  // 这个默认指向.cz-config.js
  "cz-customizable": {
    "config": "config/path/to/my/config.js"
  }
}
  • .cz-config.js

配置默认有个example (opens new window)

运行 git cz 后会让你选择你配置的 scopes

# commitlint (opens new window)

在阮一峰的文档里面,validate-commit-msg 官网写着已经废弃,并指向了 commitlint

安装步骤就不详细说了,具体见这里 (opens new window)

这里引入了husky (opens new window),在 git commit -m "" 或者直接 vscode 提交,项目提交都进行 hook,并抛出错误

# 思考

运用 conventional-changelog 官方都是推荐的 angular 的默认配置,也看过一些别的配置,由于配置项过多没有自己实现一个;后续可以根据项目需要自己去做一个相关的 js 配置。

比较不喜欢的一点就是 angular 的配置,只有 fix,feature 及其他 2 个可以生成在配置文件中,doc 居然不行。

官方的说法是: (opens new window)

This will not overwrite any previous changelog. The above generates a changelog based on commits since the last semver tag that match the pattern of a "Feature", "Fix", "Performance Improvement" or "Breaking Changes".

我测试了下还有个 Reverts 回退,是会记录在 changelog 上面的;

有一些项目中的 merge,打包等,暂时没有选项,可以先写在不被记录的一些选项上,比如 doc。

# 附,commit head:用途一览

描述
feat 新增一个功能
fix 修复一个 Bug
docs 文档变更
style 代码风格变更(不影响功能,例如空格、分号等格式修正以及代码review缺陷修复等)
refactor 重构(不是修复 Bug,也不是新增功能)
perf 改善性能
test 增加测试
chore 开发工具变动(构建,脚手架工具等)
revert 代码回退

相关文献

如何用 github 的 issues 来做日常工作管理

如何用 github 的 issues 来做日常工作管理