# Eslint配置
# 配置方式
- 代码中加注释
- 使用配置文件.eslintrc.js或者.eslintrc.yaml或者.eslintrc.yml或者.eslintrc.json或者.eslintrc
- 配置在package.json的
eslintConfig
的属性里
# 属性
- parserOptions
- ecmaVersion - 指定你想要使用的 ECMAScript 版本。值为:3,5,6,7,8,9,10
- sourceType - 代码风格。值为
script
(默认),module
- ecmaFeatures
- globalReturn - 允许在全局作用域下使用 return 语句
- impliedStrict - 启用全局
strict mode
- env
- es6 - 启用除了 modules 以外的所有 ECMAScript 6 特性(该选项会自动设置 ecmaVersion 解析器选项为 6)。
- browser - 浏览器环境中的全局变量。
- node - Node.js 全局变量和 Node.js 作用域。
- commonjs - CommonJS 全局变量和 CommonJS 作用域 (用于 Browserify/WebPack 打包的只在浏览器中运行的代码)。
- shared-node-browser - Node.js 和 Browser 通用全局变量。
- worker - Web Workers 全局变量。
- amd - 将 require() 和 define() 定义为像 amd 一样的全局变量。
- mocha - 添加所有的 Mocha 测试全局变量。
- jasmine - 添加所有的 Jasmine 版本 1.3 和 2.0 的测试全局变量。
- jest - Jest 全局变量。
- phantomjs - PhantomJS 全局变量。
- protractor - Protractor 全局变量。
- qunit - QUnit 全局变量。
- jquery - jQuery 全局变量。
- prototypejs - Prototype.js 全局变量。
- shelljs - ShellJS 全局变量。
- meteor - Meteor 全局变量。
- mongo - MongoDB 全局变量。
- applescript - AppleScript 全局变量。
- nashorn - Java 8 Nashorn 全局变量。
- serviceworker - Service Worker 全局变量。
- atomtest - Atom 测试全局变量。
- embertest - Ember 测试全局变量。
- webextensions - WebExtensions 全局变量。
- greasemonkey - GreaseMonkey 全局变量
- parser - 指定解析器, eslint默认使用
Espree
,vue中常使用Babel-ESLint
- rules - eslint规则配置
- "off" 或 0 - 关闭规则
- "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
- "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)
- plugins - 指定要提供第三方插件。在使用插件之前需要安装。插件名称可以省略
eslint-plugin-
前缀。 - overrides - 为特定类型的文件指定处理器
- files - 指定哪些文件要用
processor
指定的处理器 - processor - 指定处理器
- rules - 为处理器附加配置
- files - 指定哪些文件要用
- globals - 全局变量,避免 eslint报错
no-undef
- eslintConfig
- "root": true 指定使用当前文件作为eslint的配置文件
- extends - 一个配置文件可以被基础配置中的已启用的规则继承。
- 指定配置的字符串(配置文件的路径、可共享配置的名称、eslint:recommended 或 eslint:all)
- 字符串数组:每个配置继承它前面的配置 overrides 使用方式
{
"plugins": ["a-plugin"],
"overrides": [
{
"files": ["*.md"],
"processor": "a-plugin/markdown"
},
{
"files": ["**/*.md/*.js"],
"rules": {
"strict": "off"
}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 配置案例
{ "root": true,
"extends": [
"plugin:vue/essential",
"eslint:recommended",
"./node_modules/coding-standard/.eslintrc-es6",
],
// 使用 babel-eslint解析器
"parserOptions": {
"parser": "babel-eslint"
},
// 启用了 browser 和 Node.js 的环境:
"env": {
"browser": true,
"node": true
},
// 启用全局变量$, 可以全局使用JQuery
"globals": {
"$": "writable", // 可以覆盖$变量
"$": "readonly" // 不可以重写,
"xxx": "off" // 该变量不可用
},
// 使用vue插件
"plugins": ["eslint-plugin-vue"],
// 指定开发校验规则
"rules": {
"eqeqeq": "off",
"curly": "error",
"quotes": ["error", "double"] // 数组的第一项总是规则的严重程度(数字或字符串)。
// 配置定义在插件中的一个规则的时候,你必须使用 插件名/规则ID 的形式
// "plugin1/quotes": "error"
},
// 对test.js, spec.js进行覆盖
"overrides": [
{
"files": ["*-test.js","*.spec.js"],
"rules": {
"no-unused-expressions": "off"
}
}
],
}
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
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