lint-staged
lint-staged (opens new window) 是一个只检测git暂存区的lint工具。可以避免我们每次检查都把整个项目的代码都检查一遍,从而提高效率。具体检查规则,还要配置。
# 安装
yarn add -D lint-staged
# 添加lint-staged配置
- 方法一:在
package.json
中添加 (推荐👍) - 方法二:创建
.lintstagedrc
文件 - 方法三:创建
lint-staged.config.js
文件并进行配置
// 以package.json中添加为例
"husky": {
"hooks": {
"pre-commit": "lint-staged",
}
},
"lint-staged": {
"*.vue": [
"eslint --fix",
"stylelint --fix",
"git add"
],
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
"git add"
],
"*.{htm,html,css,sss,less,scss,sass}": [
"stylelint --fix",
"git add"
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
注意
- lint-staged v10之前每个任务最后都要加
git add
,因为每个lint任务都有可能修复代码、美化格式,这些修改的文件要再次git add .
才能被git commit
, - 所以必须在每个任务后加上
git add
,lint-staged 识别到git add后,自动将该lint任务修改的文件添加到暂存区。就不会影响git commit
提交了。 - 但在v10之后,官方对此做了优化,不用去写
git add
,lint-staged自动将修改的文件加入暂存区。
# 使用
lint-staged一般配合husky的pre-commit
(git commit前的hooks)使用。
每次git commit
时,pre-commit会先拦截,执行完/.husky/pre-commit
中代码,如果没有报错,才会正常提交。
// /.husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn lint-staged
1
2
3
4
5
2
3
4
5
编辑 (opens new window)
上次更新: 2022/09/04