校验暂存区
lint-staged
前面 提到过 husky 的概念,同理可以像校验提交信息一样在代码提交时校验代码规范,只不过要考虑一个问题,就是 eslint 校验时需要传递要校验的文件夹或文件作为参数,也就是说,有可能校验的文件可能和上一次一样没有做任何更改,白白浪费了校验的时间,正常情况下,暂存区中的文件其实就发生了变更的文件,那有没有办法只对暂存区文件做校验呢,有的,就是 lint-staged
配置
安装依赖
pnpm add --save-dev lint-staged配置
package.json
{
"lint-staged": {
"*.{js,ts}": "eslint"
}
}key 是匹配对应文件的语法,value 是对匹配文件的校验命令
hook
在配置了 husky 的前提下
创建 .husky/pre-commit hook
#!/bin/sh
pnpm exec lint-staged这样就实现提交代码时只对暂存区文件做代码规范校验
完整配置
{
"lint-staged": {
"*.{js,jsx,ts,tsx}": ["prettier --write", "eslint --fix"],
"{!(package)*.json,*.code-snippets,.!(browserslist)*rc}": [
"prettier --write--parser json"
],
"package.json": ["prettier --write"],
"*.vue": ["prettier --write", "eslint --fix", "stylelint --fix"],
"*.{scss,less,styl,html}": ["prettier --write", "stylelint --fix"],
"*.md": ["prettier --write"]
}
}