eslint-每个文件parserOptions.sourceType吗?

Boy*_*ang 5 ecmascript-6 eslint es6-module-loader es6-modules

我的项目对大多数文件使用Webpack和es6模块。这些文件在浏览器中运行,并由Webpack捆绑。

在节点中运行的文件很少。他们没有被Webpack所感动,我看不到任何将它们包含在webpack中的好处。他们不支持,import因为尚未在节点(或V8)中实现。

现在进入.eslintrc,如果设置parserOptions.sourceTypescript,它将在浏览器文件中出现错误(“ import并且export仅在模块中允许!”)。如果parserOptions.sourceType设置为module,它将在节点文件中出错。

那么如何做每个文件parserOptions/* eslint-env xxx */在这种情况下不起作用

编辑

我可能可以使用特定于目录的.eslintrc,但这意味着为了更改一个选项而复制所有其他配置。还有更好的选择吗?

car*_*ant 7

您应该能够利用ESLint配置(.eslintrc)文件的分层性质:

ESLint会在要插入文件的目录中以及在连续的父目录中一直到文件系统的根目录中自动寻找它们。当您希望为项目的不同部分进行不同的配置时,或者希望其他人能够直接使用ESLint而无需记住传递配置文件时,此选项很有用。

请注意,.eslintrc子目录中的文件继承了.eslintrc父目录中文件的配置,因此很容易覆盖特定设置。


Aym*_*byk 7

另一个选择是这样使用overrides

{
  "extends": "eslint:recommended",
  "overrides": [{
    "files": ["path/to/some/file.js", "path/to/some/folder/**.js"],
    "parserOptions": {
      "sourceType": "module"
    }
  }]
}
Run Code Online (Sandbox Code Playgroud)

参见https://eslint.org/docs/user-guide/configuring#example-configuration

这种解决方案的好处:

  • 如果您只需要一个文件夹中的单个文件即可进行特定的覆盖,则可以
  • 如果您需要在多个地方共享相同的替代,则可以防止自己拥有重复的文件(这是一种很好的DRY做法)。