依赖版本
"husky": "^6.0.0",
"lint-staged": "^8.1.1",
@commitlint/cli": "^12.1.1
- "node":"^12"
安装依赖
依次在项目根目录执行如下两条命令
npm install husky --save-dev
npx husky install
npm set-script prepare "husky install"
一定要检查有这个命令,否则团队合作,其他电脑上husky是失效的。目标在于在npm install 之后激活从近程拉取来的git钩子。
package.json { "scripts": { "prepare": "husky install" } }
此时 husky
安装完成 ,根目录下生成了 .husky
文件夹
安装 lint-staged
npm install lint-staged
安装 commitlint
npm install -g @commitlint/cli @commitlint/config-conventional
至此,依赖安装完成
编辑配置
- 在
package.json
中添加
"lint-staged": {
"**/*.{js,ts,tsx,json,jsx,less}": [
"node ./scripts/lint-prettier.js",
"git add"
],
"**/*.{js,jsx}": "npm run lint-staged:js",
"**/*.less": "stylelint --syntax less"
},
2在 .husky
文件夹下找到刚刚安装依赖生成好的 pre-commit
文件,添加 npx lint-staged
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged
如果没有pre-commit 文件可以执行
npx husky add .husky/pre-commit "npx lint-staged"
git add .husky/pre-commit
3.在 .husky
文件夹下新建 commit-msg
文件,填入如下信息
#!/bin/sh. "$(dirname "$0")/_/husky.sh"npx commitlint --edit $1
如果没有commit-msg 文件可以执行
npx husky add .husky/commit-msg "npx commitlint --edit $1" git add .husky/commit-msg
4.在项目根目录下新建 commitlint.config.js
文件 ,写入如下内容
module.exports = { extends: ['@commitlint/config-conventional'] };
至此,所有配置完成
测试
新建一个不符合 Eslint 规则的文件,在进行 commit
提交时,会拒绝本次 commit
执行 npm run lint --fix
修复文件后 ,执行一条不符合规范的提交 git commit -m 'cesssss'
,同样会被拒绝提交,终端会显示错误信息