ESLint快速了解
eslint配置方式
- 可以使用js注释
- .eslintrc.*(.eslintrc.js)文件全局配置。你也可以单独针对某些文件设置eslint校验,但我们一般不这样做。
- 根目录配置一个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的配置也是可以设置包含关系和非包含关系的
- ... 感兴趣的多看看文档吧