git commit 提交前检测

在多人协作中,起到强制规范代码的作用。利用 husky、lint-staged 工具,在 pre-commit 钩子里执行 eslint、prettier 进行代码校验、格式化,若校验失败,则无法将代码 commit,避免不规范代码提交到远程仓库。

git 钩子

git有很多命令commitpushrebase等等。那这些命令主要是在执行.git文件夹中的东西,git 钩子目录就是在.git文件夹的hooks下

1
2
3
cd .git/hooks 

ls -l

mrm

我们可以安装 mrm 自动化工具,根据 package.json 依赖项中的代码质量工具来安装和配置 husky 和 lint-staged,因此请确保在此之前安装并配置所有代码质量工具,如 Prettier 和 ESlint

安装 mrm 并执行 lint-staged 任务:

1
2
3
npm i mrm -D 

npx mrm lint-staged

此时,将会自动给你安装相关依赖工具,以及相关配置文件,形成一个自动化工具链。

配置介绍

新增 husky 目录

会把该目录作为 git hooks所在的目录

pre-commit 文件 => 对应钩子的脚本

package.json

1
2
3
4
5
6
7
8
9
10
11
"scripts": {
"prepare": "husky install"
},
"lint-staged": {
//"*.js": "eslint --cache --fix"
"src/**/*.(js|vue)": [
"eslint --fix --ext .js,.vue",
"prettier --write",
"git add"
]
}