一、引言
代碼規范提交可以很好的保存代碼修改日志,規范提交日志對於定位問題或代碼回退具有極大意義。
二、使用插件列表
- commitizen
- cz-conventional-changelog
- conventional-changelog-cli
1. commitizen 規范代碼的提交
1.1 npm倉庫地址
https://www.npmjs.com/package/commitizen
Commitizen插件簡介:使用Commitizen提交時,系統將提示您在提交時填寫所有必需的提交字段。不需要再等到稍后git提交鈎子函數來檢測提交內容從而拒絕您的提交請求。
1.2 使用
1.2.1 安裝插件 commitizen
npm install commitizen -D
1.2.2 cz-conventional-changelog
cz-conventional-changelog用來規范提交信息。
npm install cz-conventional-changelog -D
1.3 package.json 配置
"config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" } }
添加一個指令,如commit,參考配置如下圖所示:
1.4 說明
當運行 npm run commit時,出現交互選項:
(1)type
說明:
- feat: 新增一個功能
- fix: 修復bug
- docs: 僅僅修改了文檔,比如README, CHANGELOG, CONTRIBUTE等等
- style: 僅僅修改了空格、格式縮進等等,不改變代碼邏輯
- refactor: 代碼重構,沒有加新功能或者修復bug
- perf: 優化相關,比如提升性能、體驗
- test: 測試用例,包括增加缺失用例或者修正測試用例
(2)what is the scoped of this change?
本修改影響的是內容(范圍)?可以填文件名
(3)寫一個簡短的介紹
(4)提供一個長的介紹
(5)本修改是否實現了某個issues?
以上交互截圖:
2、conventional-changelog-cli 生成提交日志
conventional-changelog-cli:從git metadata生成變更日志。
2.1 使用
2.1.1 安裝
npm install -S conventional-changelog-cli
2.1.2 在項目根目錄下新建CHANGELOG.md
2.1.3 package.json 添加指令
"genlog": "conventional-changelog -p angular -i CHANGELOG.md -s"
如:
2.1.4 生成日志
npm run genlog
conventional-changelog-cli不會覆蓋任何以前的變更日志。 新增的日志基於自上一個commit的"Feature", "Fix", "Performance Improvement" 或 "Breaking Changes".。
2.1.5 首次執行
如果這是您第一次使用此工具,並且想要生成所有以前的變更日志,則可以執行:
conventional-changelog -p angular -i CHANGELOG.md -s -r 0
2.1.6 日志文件示例