我们有一个(故意,所以它始终被所有工具使用 - 从Webpack到IDE).eslintrc
文件。
我们有两种类型的JS文件,预计用于:React JSX文件,用于服务器渲染,以及用于客户端丰富的vanilla JS文件(ECMAScript 5)。
Abridged(LOL)版本看起来像这样:
{
"parser": "babel-eslint",
"extends": [
"eslint:recommended"
],
"parserOptions": {
"ecmaVersion": 8,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true,
"modules": true,
...
}
},
"env": {
"es6": true,
"node": true,
"browser": true,
"mocha": true,
"amd": true
},
"rules": {
...
},
"plugins": [..."react"...],
"globals": {
...
"requirejs": true
},
"overrides": [
{
"files": ["src/*/assets/js/**/*.js"],
"env": {
"es6": false,
"node": false,
"browser": true,
"jquery": true,
"mocha": false,
"amd": true
},
"parserOptions": {
"ecmaVersion": 5,
"sourceType": "script",
"ecmaFeatures": {
"jsx": false,
"modules": false,
"experimentalObjectRestSpread": false
}
},
"rules": {
...
},
}
...
]
}
我们想要实现的目标(通过使用overrides
)是将不同的规则集应用于React JSX代码和vanilla JS,尤其是因为它们在不同的环境中运行。
我们正在寻找一种方法,在客户端香草JS中使用ES6 +功能时,ESLint会失败。
不幸的是,在parserOptions
上设置env
或overrides
没有任何效果。我们仍然可以在我们应该是ECMAScript 5的vanilla JS代码中使用const
和=>
。
是否可以在不将.eslintrc
分成几个文件的情况下实现,或者根本不可以实现?