ESLint快速了解

510 阅读2分钟

ESLint快速了解

eslint配置方式

  1. 可以使用js注释
  2. .eslintrc.*(.eslintrc.js)文件全局配置。你也可以单独针对某些文件设置eslint校验,但我们一般不这样做。
  3. 根目录配置一个eslintrc文件,eslint在找不到配置文件的时候回默认去找这个文件(一般不用这个方式)

设置你想支持的js语言的语法—— parserOptions

{
    "parserOptions": {
        "ecmaVersion": 6,   //支持ES6
        "sourceType": "module", //支持模块化
        "ecmaFeatures": {   //支持新特性
            "jsx": true //启动jsx
        }
    },
}

eslint需要解析器—— parser

eslint根据AST语法树进行剖析,它的工作类似于babel需要解析编译等。所以,他要有自己的解析方法,即解析器。

eslint默认的解析器是Espree

其他支持的模式:

解析器的配置还可以继续拓展,官方文档有详细说明,传送门:ESlint官网

设置可访问的全局变量—— globals

通过globals你可以对一些全局变量的权限进行设置,就好像设置一个对象的defineProperty一样。true为可读写,false为只读。

{
    globals: {
        window: true,
        document: true,
        wx: false
    },
}

window、document作为全局变量都是可用的, wx全局变量只是可读的。

{
    "globals": {
        "Promise": "off"
    }
}

Promise作为全局变量是禁用的

设置代码执行支持的环境,或者说宿主环境—— env

宿主环境有很多,browser、node、commonjs、es6、amd、jest、jquery、qunit等等。你可以设置支持多个环境下执行你的代码块

{
    env: {
        browser: true,
        node: true
    }
}

支持插件—— plugins

eslint可以使用插件,前提是npm包进行安装

{
    "plugins": [
        "plugin1",
        "eslint-plugin-plugin2" //'eslint-plugin-'可省略
    ]
}

具体规则见—— rules

这个不多说了,缩进、箭头函数什么的具体的校验规则都在这里配置,这里边说头也挺多的,如何配置插件的某一个规则的错误级别,等等。详见官网吧。毕竟咱们这个是快速了解

配置合并和覆盖

ESLint配置规则会根据文件层级关系,根目录配置,行内注释配置等不同情况进行。这样有好处,同样也有风险。平时的项目开发中没必要。可是,即便你入口只写一个配置文件,也无法阻止eslint的逐层查找停下脚步,就好像原型链一样~~~,自然有解决的办法,话不多说,引一段

ESLint 一旦发现配置文件中有 "root": true,它就会停止在父级目录中寻找

规则继承—— extends

一个配置文件可以被基础配置中的已启用的规则继承。

规避校验—— .eslintignore

写路径就完了

  • eslint的配置也是有优先级的
  • eslint的配置也是有逐层查找原则的
  • eslint的配置也是可以设置包含关系和非包含关系的
  • ... 感兴趣的多看看文档吧