[原文]http://eslint.org/docs/user-guide/configuring
ESLint是完全可配置的,意味着可以关闭所有规则只保留语法验证,或者混合匹配捆绑规则和自定义规则。配置ESLint有两种方式:
配置注释 - 用JavaScript的注释在文件中直接嵌入配置信息。
配置文件 - 用JavaScript、JSON、YAML文件来配置整个工程。
可以配置的参数包括:Environments - 脚本执行的环境。不同的执行环境有不同的预定义全局变量。
Globals - 其他的脚本执行需要的全局变量。
Rules - 不同错误级别的规则。
配置parserOptions参数
ESLint默认支持ECMAScript5的语法规则。也可通过参数覆盖到ECMAScript6,JSX同样。
.eslintrc.* 中parserOptions其中可配置的参数包括:
- ecmaVersion - ECMAScript的版本,3、5(默认)、6
- sourceType -
- ecmaFeatures - 表示一些附加特性的对象:
- globalReturn - 在全局作用域允许return 语句
- impliedStrict - strict模式(ecma版本大于等于5)
- jsx - 支持jsx
- experimentalObjectRestSpread -
.ealintrc.json文件示例:
{
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
},
},
"rules": {
"semi": 2
}
}
parserOptions的配置决定ESLint认为哪些是错误。默认规则都是false
解析器配置
ESLint默认使用Espree 。同时满足以下要求的自定义解析规则也可定义:
- 必须是本地的npm module
- 必须是有 Esprima-compatible 的接口(parse()方法)
- 必须生成一个 Esprima-compatible AST and token objects
注意:即使有这些兼容性,也不能保证一个外部解析器可以很好地和ESLint一起工作,ESLint也不会修复和其它解析器结合产生的兼容性问题。
为了让npm模块使用你自己的解析器,你需要在你的.eslintrc
文件里指定parser
选项。例如:下面配置文件指定Esprima作为解析器而不是Espree:
{
"parser": "esprima",
"rules": { "semi": 2 }
}
与ESLint兼容良好的解析器:
- Esprima
- Babel-ESLint Babel解析器的封装版