项目中增加了eslint和prettier,也不能100%保证,提交上来的代码,符合格式要求
那么就需要,在代码提交时,检查代码并自动修复代码
git hooks 结合 lint-staged,就可以实现
一、知识简介
(1)git hooks
git 在执行某个事件之前或之后进行一些其他的操作
简单介绍一个钩子:
pre-commit:git 提交前被调用
其中,husky 是git hooks的工具
(2)lint-staged
通过 lint-staged,可以配置在每次提交代码时自动运行 lint 工具
只检查本次修改更新的代码,并在出现错误的时候,自动修复
二、实际操作
- 安装依赖husky:
npm install husky --D
- 生成
.husky文件夹
npx husky install
根目录会增加如下文件:
- 在 package.json文件,scripts 中生成
prepare指令
npm set-script prepare "husky install"
或者在scripts中,手动写入"prepare": "husky install"
- 执行
prepare指令
npm run prepare
执行成功后提示
- 在git hooks的pre-commit中,也就是代码提交之前,增加格式化修复
npx husky add .husky/pre-commit 'npx lint-staged'
命令执行成功以后,.husky文件下,增加pre-commit文件
- 在
package.json增加如下修复限制代码
"lint-staged": {
"src/**/*.{js,ts,vue}": [
"eslint --fix",
"git add"
]
}
限制检验和修复,src目录下的js,ts,vue文件
至此,git 提交代码时,会自动验证和修复代码啦。