cnpm install -g commitizen
cnpm i --save-dev cz-customizable
- 项目根目录下创建.cz-config.js 自定义提示文件
module.exports = {
// 可选类型
types: [
{ value: "[add]", name: "add: 新功能" },
{ value: "[fix]", name: "fix: 修复" },
{ value: "[docs]", name: "docs: 文档变更" },
{ value: "[style]", name: "style: 代码格式(不影响代码运行的变动)" },
{
value: "[refactor]",
name: "refactor: 重构(既不是增加feature,也不是修复bug)",
},
{ value: "[del]", name: "del: 删除" },
{ value: "[update]", name: "update: 修改" },
{ value: "[merge]", name: "merge: 合并" },
{ value: "[revert]", name: "revert: 回退" },
{ value: "[build]", name: "build: 打包" },
],
// 消息步骤
messages: {
type: "请选择提交类型:",
customScope: "请输入修改范围(可选):",
subject: "请简要描述提交(必填):",
body: "请输入详细描述(可选):",
footer: "请输入要关闭的issue(可选):",
confirmCommit: "确认使用以上信息提交?(y/n/e/h)",
},
// 跳过问题
skipQuestions: ["customScope", "body", "footer"],
// subject文字长度默认是72
subjectLimit: 72,
};
使用 git cz 代替 git commit,即可看到提示内容
2.安装commitlint
npm install --save-dev @commitlint/config-conventional @commitlint/cli
创建 commitlint.config.js 文件
module.exports = {
// 继承的规则
extends: ["@commitlint/config-conventional"],
// 定义规则类型
rules: {
// type 类型定义,表示 git 提交的 type 必须在以下类型范围内
"type-enum": [
2,
"always",
[
"[add]", // 新功能 feature
"[fix]", // 修复 bug
"[docs]", // 文档注释
"[style]", // 代码格式(不影响代码运行的变动)
"[refactor]", // 重构(既不增加新功能,也不是修复bug)
"[perf]", // 性能优化
"[test]", // 增加测试
"[chore]", // 构建过程或辅助工具的变动
"[revert]", // 回退
"[build]", // 打包
],
],
"subject-empty": [0], //
"type-empty": [0],
// subject 大小写不做校验
"subject-case": [0],
},
};
规则链接地址
https://github.com/conventional-changelog/commitlint/blob/master/docs/reference-rules.md
husky部分
npm install --save-dev husky
npx husky install
npm set-script prepare "husky install"
npm run prepare
npx husky add .husky/commit-msg ‘npx --no-install commitlint --edit “$1”’
最后生成出来这个
最终效果 (这里多了一个custom)不知道因为什么 哪位大佬知道告知下