ESLint:在eslintrc

时间:2018-02-21 08:50:04

标签: javascript ecmascript-6 eslint ecmascript-5

我们有一个(故意,所以它始终被所有工具使用 - 从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上设置envoverrides没有任何效果。我们仍然可以在我们应该是ECMAScript 5的vanilla JS代码中使用const=>

是否可以在不将.eslintrc分成几个文件的情况下实现,或者根本不可以实现?

0 个答案:

没有答案