http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html
参考:https://github.com/conventional-changelog/commitlint
npm install -D @commitlint/{config-conventional,cli} husky
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
}
npm install -D commitizen cz-conventional-changelog
"scripts": {
...
"commit": "git-cz"
}
"config": {
"commitizen": {
"path": "node_modules/cz-conventional-changelog"
}
}
git add .
和npm run commit
image
参考:https://github.com/CookPete/auto-changelog
npm install -D auto-changelog
{
"template": "CHANGELOG.template",
"unreleased": true,
"commitLimit": false
}
创建自定义 changelog 模板 CHANGELOG.template.**注意替换组名和仓库名**
# Changelog
{{#each releases}}
## [{{title}}]
{{#commit-list commits heading='### Breaking Change' message='\[break\]'}}
- {{subject}} [{{shorthash}}]({{href}})
{{/commit-list}}
{{#commit-list commits heading='### New Feature' message='feat: ' exclude='\[break\]'}}
- {{subject}} [{{shorthash}}]({{href}})
{{/commit-list}}
{{#commit-list commits heading='### Bug Fix' message='fix: ' exclude='\[break\]'}}
- {{subject}} [{{shorthash}}]({{href}})
{{/commit-list}}
{{/each}}
"scripts": {
...
"changelog": "auto-changelog",
"version": "auto-changelog -p && git add CHANGELOG.md"
}
npm run changelog
执行npm version
时会自动生成带所发布版本号的 changelog