对于一个多人团队来说,每次发布的日志更新和版本更新如果通过人肉完成,没有统一的流程和规范,则容易造成混乱;尤其对于团队的新同学,有时遇到紧急情况,则会更显慌乱。这时候,用自动化工具再合适不过了!
conventional-changelog
onventional-changelog 可以根据项目的commit
自动生成 changelogs
,并且和 standard-version 结合,可以自动完成生成version
、打tag
, 生成CHANGELOG
等。
conventional-changelog 模块
- conventional-changelog-cli - conventional-changelog 核心命令行工具
- cz-conventional-changelog - changelog适配器, commitizen家族一员,标准提交提示
- standard-changelog - 针对 angular commit 格式的命令行工具
- commitizen - 针对开发者简单的 commit 规范
commitizen
全局安装:npm install -g commitizen
或 本地安装: npm install --save-dev commitizen
安装适配器(cz-conventional-changelog)
全局安装:npm install -g cz-conventional-changelo
在根目录下添加.czrc
,内容为: { "path": "cz-conventional-changelog" }
或 本地安装: npm install --save-dev cz-conventional-changelo
在package.json中添加配置:
"config": {
"commitizen": {
"path": "cz-conventional-changelog"
}
}
此时,提交commit过程如下:
git add .
-
git cz
或cz
第一行可看到cz-cli@4.2.2, cz-conventional-changelog@3.3.0
conventional-changelog-cli
- 安装
npm install -g conventional-changelog-cli
- 使用
conventional-changelog -p angular -i CHANGELOG.md -s
该命令会在CHANGELOG.md文件头部添加上次tag
之后的commit信息
版本号读取的是package.json中的version
更多选项配置查看这里
则,一次changelog的过程如下:
- 修改代码
- git add . / git cz
- 修改package.json中的version
- 运行生成changelog命令,最好将命令集成到package.json的scripts中
- 手动 Tag, Push等
standard-version
该工具帮助我们实现自动发布等功能,通常我们基于master发布时,流程如下:
- git pull origin master
- 前面的流程
- 手动Tag, Push等
安装
npm install -g standard-version
常用的命令如下:
会自动生成tag:
则,基于以上工具,发布流程如下:
- changes
- git add . / git cz
-
npm run release
也可以指定发布的版本: