目的
1. 规范commit message,形成统一性,便于查找历史记录;
2. 验证代码规范性,避免不规范的代码提交
安装包
@commitlint/cli、@commitlint/config-conventional: 规范commit message提交文案;
Husky: 在 .git/hooks 中写入 pre-commit 等脚本激活钩子,在 Git 操作时触发;
lint-staged: 参考 Git 中 staged 暂存区概念,在每次提交时只检查本次提交的文件。
1、commit规范
创建配置文件:commitlint.config.js,存放具体提交信息规范(可自定义),提交信息必须根据每次提交类型写成 “: ”( feat: 我是一次新建)形式。
module.exports = {
extends: ['@commitlint/config-conventional']
};
2、Husky钩子
配置具体规则;其中"pre-commit"属性配置验证前eslint规则,"eslint --cache --fix --ignore-path .gitignore"(不建议在此处进行—fix修复,会出现不确定的错误)
3、Lint-staged
只验证本次提交是的文档是否遵循eslint规范,无需每次提交检测全项目文件规范,(可去掉)。
Pakage.json配置
"husky": {
"hooks": {
"commit-msg": "commitlint -e $HUSKY_GIT_PARAMS",
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint",(具体配置)
"git add"
]
},
错误情况:(以下情况git均无法提交)