项目代码规范

依赖版本

  • "husky": "^6.0.0",
  • "lint-staged": "^8.1.1",
  • @commitlint/cli": "^12.1.1
  • “node”:”^12”

安装依赖

依次在项目根目录执行如下两条命令

1
npm install husky --save-dev
1
npx husky install
1
npm set-script prepare "husky install"
1
2
3
一定要检查有这个命令,否则团队合作,其他电脑上husky是失效的。目标在于在npm  install 之后激活从近程拉取来的git钩子。

package.json { "scripts": { "prepare": "husky install" } }

此时 husky 安装完成 ,根目录下生成了 .husky 文件夹

安装 lint-staged

1
npm install lint-staged

安装 commitlint

npm install -g @commitlint/cli @commitlint/config-conventional
至此,依赖安装完成

编辑配置

  1. package.json 中添加
1
2
3
4
5
6
7
8
"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

1
2
3
4
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx lint-staged

如果没有pre-commit 文件可以执行

1
2
3
npx husky add .husky/pre-commit "npx lint-staged" 

git add .husky/pre-commit

3.在 .husky 文件夹下新建 commit-msg 文件,填入如下信息

1
#!/bin/sh. "$(dirname "$0")/_/husky.sh"npx  commitlint --edit $1

如果没有commit-msg 文件可以执行

1
npx husky add .husky/commit-msg "npx  commitlint --edit $1" git add .husky/commit-msg

4.在项目根目录下新建 commitlint.config.js 文件 ,写入如下内容

1
module.exports = { extends: ['@commitlint/config-conventional'] };

至此,所有配置完成

测试

新建一个不符合 Eslint 规则的文件,在进行 commit 提交时,会拒绝本次 commit
执行 npm run lint --fix 修复文件后 ,执行一条不符合规范的提交 git commit -m 'cesssss',同样会被拒绝提交,终端会显示错误信息