工具介绍
Husky + lint-staged + ESlint + Prettier(可选) 实现git增量代码lint校验
Husky
:一个为 git 客户端增加 hook 的工具,它有一些钩子函数,比如pre-commit、 pre-push等lint-staged
: 一个过滤出 git 代码暂存区文件的工具,在每次提交时只检查本次提交的文件
上图的index就表示暂存区,lint-staged 只对暂存区的文件执行一些命令
配置
- 安装依赖(已安装请跳过)
yarn add husky lint-staged eslint
- husky配置
package.json 添加 prepare 脚本:
{
"scripts": {
"prepare": "husky install"
}
}
在项目根目录执行:
yarn prepare
yarn husky add .husky/pre-commit "yarn lint-staged --verbose"
ps: --verbose参数可以让eslint打印出warning信息,没有这个参数的话,执行eslint --fix
的时候当只有warning的时候不会在控制台打印
另外在最新的husky版本中,必须通过husky install生成 .husky相关配置才会生效,以下的配置方式将会失效:
- lint-staged配置
package.json 添加 lint-staged 脚本和 lint-staged 执行的命令:
{
"scripts": {
"lint-staged": "lint-staged"
},
"lint-staged": {
"src/**/*.{ts,vue}": [
"eslint --fix" // 这里面不能直接执行script中的脚本,比如
// 你在script中写了一个 "eslint:fix": "eslint --fix --ext .ts,.vue src"
// 是不能直接在这里面直接执行 "eslint:fix" 的
]
},
}