第四章-在git commit提交的时候进行代码规范校验

1,090 阅读1分钟

配置git commit提交规范

在提交代码到git仓库之前,Eslint自动的去验证代码规范,防止不符合规范的代码提交到git仓库中。

安装husky

提供git钩子的工具,设置在提交(commit)代码的时候通过 git hook 来运行lint-staged

husky这个工具就类似于请求拦截器在git commit或者是git push的时候去做点什么。

npx husky-init
npm install

运行这个命令会:

  1. 添加prepare: 'husky install'脚本到package.json,添加完这个命令,别人拉取代码npm install时会自动执行prepare命令,保证别人拉取的代码也有git 钩子。
  2. 创建一个pre-commit可以编辑的示例挂钩(默认情况下,npm test将在提交时运行)
  3. 配置Git钩子路径

安装lint-staged

lint-staged的作用是针对暂存的 git 文件运行 linter,对代码进行规范检查,怎么进行检查需要自己进行配置,并且不要让💩滑入您的代码库!

npm install --save-dev lint-staged

配置lint-staged

在项目根目录创建.lintstagedrc文件,然后使用commonjs模块规范向外暴露一个对象:

{
  "*.{js,jsx,ts,tsx}": [
    "prettier --cache --ignore-unknown  --write",
    "eslint --cache --fix"
  ],
  "{!(package)*.json,*.code-snippets,.!({browserslist,npm,nvm})*rc}": [
    "prettier --cache --write--parser json"
  ],
  "package.json": ["prettier --cache --write"],
  "*.vue": [
    "prettier --write",
    "eslint --cache --fix",
    "stylelint --fix --allow-empty-input"
  ],
  "*.{css,scss,html}": [
    "prettier --cache --ignore-unknown --write",
    "stylelint --fix --allow-empty-input"
  ],
  "*.md": ["prettier --cache --ignore-unknown --write"]
}

修改.husky/pre-commit

npm test 换成 npx lint-staged

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

# npm test
npx lint-staged

配置好后,在git commit的时候就会运行npx lint-staged命令,从而运行eslint等代码规范校验工具,对代码进行规范验证。

image.png

如果node版本过低,则会出现如下报错:

image.png