ESlint 支持第三方插件,在使用以前须要先将插件下载到本地。这里须要注意的是,若是 ESlint 是全局安装的,那么第三方插件也必需要安装为全局;局部安装也同理。node
在配置文件中经过设置 plugins 的属性值来配置插件,plugins 值是一组插件名列表,插件名能够省略前缀的 eslint-plugin。好比:react
{
"plugins": [
"plugin1",
"eslint-plugin-plugin2"
]
}
复制代码
ESlint 支持在配置文件中添加共享设置,在共享设置中设置的对象能被任一即将执行的规则获取到,因此这在开发自定义规则插件而言很重要,可以下设置:git
{
"settings": {
"sharedData": "Hello"
}
}
复制代码
配置文件的使用分为两种方式:es6
// 使用这个文件做为额外的配置文件,如存在 .eslintrc.* 文件则覆盖选项
eslint -c myconfig.json
// 若但愿彻底不用 .eslintrc.* 中的配置,不过要注意须要和 -c 命令搭配使用
eslint --no-eslintrc
复制代码
ESlint支持几种格式的配置文件,优先级排序以下:json
配置的层叠机制为:距离文件最近的 .eslintrc 优先级最高,其次是父文件夹中的,以此类推。若赶上不一样的 .eslintrc 文件之间有冲突的属性,则优先级高的覆盖优先级低的(同级别的配置可根据上面提到的文件格式优先级决定)。数组
因为 ESlint 默认会从文件当前目录一直查找到系统根目录,可能会致使一些意料以外的结果。要想避免这种默认行为,能够在当前项目的根目录中的配置文件添加 root: true,配置以后往上查找会在项目根目录终止。bash
完整的优先级由高到低排序以下:ide
在配置文件中,经过配置 extends 咱们能够在基础配置之上对规则进行扩展。extend 可选的值有:ui
而在配置文件中定义的 rules 能够在扩展配置中进行扩展(如存在冲突则覆盖)。spa
官方提供的扩展有 eslint:recommended 和 eslint:all,其中 eslint:recommended 包括了规则列表中有 ✔ 标记的规则项;eslint:all 包含了当前版本的 ESlint 包含的全部规则项,因为这个扩展常常随着 ESLint 的版本更新变更,故在生产模式下不推荐使用。
咱们也可使用插件中的配置,对于这类扩展,extends 属性值能够由如下部分组成:
好比下面这个扩展:
{
"plugins": [
"react"
],
"extends": [
"eslint:recommended",
"plugin:react/recommended"
],
"rules": {
"no-set-state": "off"
}
}
复制代码
除此以外,还可使用自定义的配置文件,好比:
{
"extends": [
"./node_modules/coding-standard/eslintDefaults.js",
"./node_modules/coding-standard/.eslintrc-es6",
"./node_modules/coding-standard/.eslintrc-jsx"
],
"rules": {
"eqeqeq": "warn"
}
}
复制代码
有时候咱们须要对配置进行更精细的控制,好比同一个目录下的文件要有不一样的配置。要达到这个目的,咱们能够将配置写入 overrides 属性中,它将只被应用到符合匹配模式中的文件中。具体规则以下:
{
"rules": {
"quotes": ["error", "double"]
},
"overrides": [
{
"files": ["bin/*.js", "lib/*.js"],
"excludedFiles": "*.test.js",
"rules": {
"quotes": ["error", "single"]
}
}
]
}
复制代码
目前只能经过 --ext 命令进行这一操做。