【问题标题】:ESLint ignore specific rule for a specific directoryESLint 忽略特定目录的特定规则
【发布时间】:2017-05-10 01:13:38
【问题描述】:

ESLint 是否可以忽略整个目录的特定规则?

就我而言,我想忽略 import/prefer-default-export 的目录名为 commonComponents

【问题讨论】:

标签: eslint


【解决方案1】:

ESLint configuration (.eslintrc) files 是分层的:

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

您可以通过在该目录中创建具有以下内容的.eslintrc 文件来禁用commonComponents 目录的import/prefer-default-export 规则:

{
    "rules": {
        "import/prefer-default-export": "off"
    }
}

【讨论】:

  • 您能告诉我您在哪里找到有关如何切换此规则的文档吗? eslint-plugin-import 文档没有帮助
  • @Dimitris 不确定你的意思。该规则具有no options,因此它只是根据ESLint documentation 进行的简单开/关。
【解决方案2】:

您还可以使用“overrides”键为不同的 glob 模式声明规则。

阅读Configuration Based on Glob Patterns

有时需要更精细控制的配置,例如,如果同一目录中的文件的配置必须不同。因此,您可以在仅适用于与特定 glob 模式匹配的文件的 overrides 键下提供配置,使用与在命令行中传递的相同格式(例如,app/**/*.test.js)。

我使用它从我的测试文件中删除no-unused-expressions 规则,如下所示;

"overrides": [{
  "files": [ "*.spec.js" ],
  "rules": {
    "no-unused-expressions": 0
  }
}]

【讨论】:

  • 这是最好的解决方案。每次我们想忽略已接受答案中的文件夹规则时,我们都不必添加新文件。
【解决方案3】:

如果您希望将规则应用到多个目录,那么您可以为不同的目的创建不同的配置。例如:

  • .eslintrc.json 通用配置
  • .eslintrc-main.json 用于主要 linting 并运行 eslint -c .eslintrc-main src test
  • .eslintrc-comp.json 用于组件并运行 eslint -c .eslintrc-comp commonComponents fooBarComponent

【讨论】:

    【解决方案4】:

    YAML 版本:

    rules:
      no-unused-expressions: true
    
    overrides:
      - files: *-tests.js
        rules:
          no-unused-expressions: false
    

    【讨论】:

      【解决方案5】:

      cretae .eslintignore 文件并将您排除的文件夹放入其中。示例:

      node_modules/
      functions/
      dist/
      

      【讨论】:

      • 这并不试图回答这个问题。
      猜你喜欢
      • 1970-01-01
      • 2016-08-28
      • 1970-01-01
      • 2021-05-13
      • 2018-03-07
      • 1970-01-01
      • 2015-02-28
      • 1970-01-01
      相关资源
      最近更新 更多