12

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

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

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

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

编辑

我可能可以使用 directory-specific .eslintrc,但这意味着为了只更改一个选项而复制所有其他配置。有更好的选择吗?

4

2 回答 2

18

另一种选择是overrides这样使用:

{
  "extends": "eslint:recommended",
  "overrides": [{
    "files": ["path/to/some/file.js", "path/to/some/folder/**.js"],
    "parserOptions": {
      "sourceType": "module"
    }
  }]
}

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

这种解决方案的好处:

  • 如果您只需要一个文件夹中的一个文件来具有特定的覆盖,您可以
  • 如果您需要在多个地方共享相同的覆盖,您可以防止自己拥有重复的文件(这是一个很好的 DRY 做法)。
于 2017-08-30T15:59:57.467 回答
12

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

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

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

于 2016-09-19T03:16:37.530 回答