npm install eslint --save-dev
or
yarn add eslint --save-dev
/* eslint-env node, mocha */ // 使用注释来指定环境
/* global var1:writable, var2:readonly */ // 使用注释指定全局变量,并且约定全局变量是否允许重写, writable允许重写全局变量、readonly不允许重写全局变量、off禁用全局变量
/* eslint eqeqeq: "off", curly: "error" */ // 使用注释配置规则。off关闭规则;warn开启警告级别规则;error开启错误级别规则;
/* eslint eqeqeq: 0, curly: 2 */ // 使用注释配置规则。0关闭规则;1开启警告级别规则;2开启错误级别规则;
/* eslint "plugin1/rule1": "error" */ // 使用注释配置来自plugin的规则。
/* eslint-enable no-alert, no-console */ // 启用指定规则
/* eslint-disable */ // 对整个文件禁用eslint
/* eslint-disable no-alert, no-console */ // 指定规则的禁用
// eslint-disable-line // 当前行禁用
/* eslint-disable-next-line no-alert, quotes, semi */ // 下一行禁用规则
/* eslint-disable-line example/rule-name */ // 禁用eslint-plugin-example的rule-name 规则
eslintConfig
字段指定配置。environments - 指定脚本的运行环境。每种环境都有一组特定的预定义全局变量。
全局变量一部分来自
globals
第三方库,还有一部分来自eslint/conf/environments.js
里面的定义。
plugins
数组里指定了插件名,然后在 env 配置中不带前缀的插件名后跟一个 /
,紧随着环境名。{
"browser": true,
"node": true,
"example/custom": true
}
globals
配置属性设置为一个对象,该对象包含以你希望使用的每个全局变量。对于每个全局变量键,将对应的值设置为 "writable"
以允许重写变量,或 "readonly"
不允许重写变量,"off"
禁用全局变量。{
"globals": {
"var1": "writable",
"var2": "readonly",
"var3": "off"
}
}
plugins
关键字来存放插件名字的列表。插件名称可以省略 eslint-plugin-
前缀。{
"plugins": [
"plugin1",
"eslint-plugin-plugin2"
]
}
"off"
或 0
- 关闭规则"warn"
或 1
- 开启规则,使用警告级别的错误:warn
(不会导致程序退出)"error"
或 2
- 开启规则,使用错误级别的错误:error
(当被触发的时候,程序会退出){
"plugins": [
"plugin1"
],
"rules": {
"eqeqeq": "off",
"curly": "error",
"quotes": ["error", "double"],
"plugin1/rule1": "warn" // 启用plugin的规则,当指定来自插件的规则时,确保删除 eslint-plugin- 前缀
}
}
"script"
(默认) 或 "module"
如果你的代码是 ECMAScript 模块)。return
语句ecmaVersion
是 5 或更高){
parserOptions: {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
}
}
processor
键,并使用由插件名和处理器名组成的串接字符串加上斜杠。要为特定类型的文件指定处理器,请使用 overrides
键和 processor
键的组合。{
{
"plugins": ["plugin1"],
"processor": "plugin1/myProcessor"
}
}
{
"settings": {
"sharedData": "Hello"
}
}
在自定义规则create(context)钩子函数,context上下文中可以获取settings。具体请查看eslint 官网。
extends
属性值可以由以下组成:eslint-plugin-
/
{
"plugins": [
"plugin1"
],
"extends": [
"eslint:recommended",
"plugin:plugin1/myConfigs"
],
}
overrides
和 files
。{
"plugins": [
"plugin1"
],
"overrides": [
{
"files": ["*.md"],
"processor": "plugin1/markdown"
},
{
"files": ["*.md"],
"rules": {
"strict": "off"
}
}
]
}
package.json
文件或者 .eslintrc.*
文件里的 eslintConfig
字段下设置 "root": true
。ESLint 一旦发现配置文件中有 "root": true
,它就会停止在父级目录中寻找。{
"root": true
}