安装依赖

依次安装以下依赖包。

1
2
3
4
5
6
7
8
"babel-eslint"
"eslint"
"eslint-config-prettier"
"eslint-plugin-import"
"eslint-plugin-prettier"
"husky"
"lint-staged"
"prettier"

配置package.json文件

设置在commit前执行npm run lint命令,检查代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ......

"scripts": {
"precommit": "lint-staged",
"lint": "eslint -c .eslintrc ./**/*.js"
},
"lint-staged": {
"./**/*.js": [
"prettier --tab-width 2 --write",
"eslint --fix --fix-type suggestion .",
"git add"
]
},

// ......

配置.eslintrc文件

我们选用Airbnb的JavaScript配置.eslintrc文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
// ......

// 扩展
"extends": [
"prettier",
"prettier/standard"
],

// 插件
"plugins": [
"prettier"
],

// 配置解析器
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},

// 脚本目标的运行环境
"env": {
"browser": true,
"node": true,
"es6": true,
"commonjs": true
},

// 全局变量
"globals": {
"__DEV__":true,
"__WECHAT__":true,
"__ALIPAY__":true,
"App":true,
"Page":true,
"Component":true,
"Behavior":true,
"wx":true,
"getApp":true
},

// 规则
// https://github.com/airbnb/javascript/blob/master/packages/eslint-config-airbnb-base/rules/style.js

// ......
}
......

配置.eslintignore

根据自己项目需求配置需要忽略进行lint的文件

1
2
// etc.
/node_modules