# conventional-changelog-cli,提交日志(更新日志)的自动生成

# 引言

代码git提交规范,可以给定位问题和回滚提供有力的依据。commitizen和cz-conventional-changelog能使用husky代替,husky通过git钩子控制,更具备约束性

# 使用到的插件

  1. commitizen
  2. cz-conventional-changelog
  3. conventional-changelog-cli

# 1. commitizen

Commitizen插件简介:使用Commitizen提交时,系统将提示您在提交时填写所有必需的提交字段。不需要再等到稍后git提交钩子函数来检测提交内容从而拒绝您的提交请求。

# 插件的使用

    npm install -D commitizen
    npm install -D cz-conventional-changelog 
    npm install -D conventional-changelog-cli

# 1.配置commitizen

添加package.json配置

{
    "scripts": {
        "commit": "cz"
    },
    "config": {
        "commitizen": {
            "path": "cz-conventional-changelog"
        }
    }
}

# 2. 使用commitizen

    npm run commit

说明:

  • feat: 新增一个功能
  • fix: 修复bug
  • docs: 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等
  • style: 仅仅修改了空格、格式缩进等等,不改变代码逻辑
  • refactor: 代码重构,没有加新功能或者修复bug
  • perf: 优化相关,比如提升性能、体验
  • test: 测试用例,包括增加缺失用例或者修正测试用例

# 配置conventional-changelog-cli

添加package.json配置

{
    "scripts": {
        "genlog": "conventional-changelog -p angular -i CHANGELOG.md -s"
    }
}

# 使用conventional-changelog-cli

    npm run genlog
    # 首次执行
    conventional-changelog -p angular -i CHANGELOG.md -s -r 0

最后生成了你想要的CHANGELOG.md文件