Git Hooks
很多时候,项目没有建设 ci/cd
,仅凭写代码的时候通过 IDE
做 lint
检查,是很容易上传不规范的代码的。所以这里利用 git hooks
在提交之前会做一次 lint
检查。
husky
一般我们不会手动更改 pre-commit,而且修改后,没有办法加入 git
版本控制之中。这里使用 https://github.com/typicode/husky 去做这件事。安装后,修改 package.json
,增加配置:
"husky": {
"hooks": {
"pre-commit": "eslint ./src/**/*.{js,vue}"
}
}
lint-staged
可以仔细观察上面的命令,会发现每次它都检查整个目录,但实际我们大部分时间只会修改部分代码。所以从一个方面来说,对整个目录的检查是没有必要的,另一方面来说,万一别人的代码出了错,会导致自己无法提交。为了解决这个问题,这里采用了 lint-staged 这个库。它只会校验检查你提交的部分内容。安装后,修改 package.json
配置:
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,vue}": [
"npm run lint -- --fix",
"git add"
]
}
对于能自动修复的 eslint
错误,它会静默的帮你修复。对于不能修复的错误,会在控制台打印错误信息,阻止提交,后续只需要按照要求修复重新提交即可。