對于一個多人團(tuán)隊來說,每次發(fā)布的日志更新和版本更新如果通過人肉完成,沒有統(tǒng)一的流程和規(guī)范,則容易造成混亂;尤其對于團(tuán)隊的新同學(xué),有時遇到緊急情況,則會更顯慌亂。這時候,用自動化工具再合適不過了!
conventional-changelog
onventional-changelog 可以根據(jù)項(xiàng)目的commit 自動生成 changelogs,并且和 standard-version 結(jié)合,可以自動完成生成version、打tag, 生成CHANGELOG等。
conventional-changelog 模塊
- conventional-changelog-cli - conventional-changelog 核心命令行工具
- cz-conventional-changelog - changelog適配器, commitizen家族一員,標(biāo)準(zhǔn)提交提示
- standard-changelog - 針對 angular commit 格式的命令行工具
- commitizen - 針對開發(fā)者簡單的 commit 規(guī)范
commitizen
全局安裝:npm install -g commitizen
或 本地安裝: npm install --save-dev commitizen
安裝適配器(cz-conventional-changelog)
全局安裝:npm install -g cz-conventional-changelo
在根目錄下添加.czrc,內(nèi)容為: { "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
標(biāo)準(zhǔn)提交提示
第一行可看到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信息

第一次changelog信息
版本號讀取的是package.json中的version
更多選項(xiàng)配置查看這里
則,一次changelog的過程如下:
- 修改代碼
- git add . / git cz
- 修改package.json中的version
- 運(yùn)行生成changelog命令,最好將命令集成到package.json的scripts中
- 手動 Tag, Push等
standard-version
該工具幫助我們實(shí)現(xiàn)自動發(fā)布等功能,通常我們基于master發(fā)布時,流程如下:
- git pull origin master
- 前面的流程
- 手動Tag, Push等
安裝
npm install -g standard-version
常用的命令如下:

自動化發(fā)布
會自動生成tag:

tag
則,基于以上工具,發(fā)布流程如下:
- changes
- git add . / git cz
-
npm run release
scrpits
也可以指定發(fā)布的版本:

指定版本

