【问题标题】:Disable eslint rules for folder禁用文件夹的 eslint 规则
【发布时间】:2017-07-04 03:58:39
【问题描述】:

有没有办法禁用文件夹的特定规则?例如,我不希望 test 文件夹中的所有测试文件都需要 JSDoc cmets。有没有办法做到这一点?

【问题讨论】:

  • eslint-babel 似乎忽略了任何 .eslint-ignore 文件和设置。

标签: eslint


【解决方案1】:

要忽略 eslint 规则中的某些文件夹,我们可以在根目录中创建文件 .eslintignore 并在其中添加我们要省略的文件夹的路径(与 .gitignore 相同)。

这是来自 Ignoring Files and Directories 上的 ESLint 文档的示例:

# path/to/project/root/.eslintignore
# /node_modules/* and /bower_components/* in the project root are ignored by default

# Ignore built files except build/index.js
build/*
!build/index.js

【讨论】:

  • 这个解决方案并没有真正回答原始问题,即如何禁用特定目录的特定规则。在这里,您将禁用给定目录的 all 规则。更好的答案在这里:stackoverflow.com/a/41316801/882638
  • 摘自ESLint documentation "除了 .eslintignore 文件中的任何模式,ESLint 总是忽略 /node_modules/* 和 /bower_components/* 中的文件。" 所以无需单独添加/node_modules/dist 就足以排除这两个目录。在指定(子)目录时也支持 glob 模式。
  • 是否可以在.eslintrc.json 配置文件本身中配置要忽略的目录,这样我们就不需要另一个.estlint 文件,我们可以从eslint-config-myconfig 共享配置中继承忽略值?
  • 有多个类似的帖子。我需要:--ignore-path 和/或--ignore-pattern,我认为准确地回答了这个问题。
  • 回答我一年前的评论,从 ESLint 6.7.0+ 开始,您现在可以使用顶级属性 ignorePatterns 来提供要忽略的模式数组。在此处阅读发布公告:eslint.org/blog/2019/11/eslint-v6.7.0-released
【解决方案2】:

之前的答案是正确的,但完整的答案将是关于disabling rules only for a group of files,在那里你会找到禁用/启用某些文件夹规则所需的文档(因为在某些情况下你不不想忽略整个事情,只禁用某些规则)。示例:

    {
        "env": {},
        "extends": [],
        "parser": "",
        "plugins": [],
        "rules": {},
        "overrides": [
          {
            "files": ["test/*.spec.js"], // Or *.test.js
            "rules": {
              "require-jsdoc": "off"
            }
          }
        ],
        "settings": {}
    }

【讨论】:

  • 这个答案更好,因为您可以为给定目录关闭 specific 规则。而不是仅仅关闭目录的所有规则。
  • 这最初对我不起作用。确保该文件夹中没有.eslintrc.jsextends: "../.eslintrc.js"
  • 这种方法有没有办法关闭文件夹的所有eslint?
  • 这是我在搜索中寻找的实际答案。
【解决方案3】:

在 ESLint 6.7.0+ 中使用“ignorePatterns”:[]。

您可以在配置文件中使用 ignorePatterns 告诉 ESLint 忽略特定文件和目录。

.eslintrc.js 示例

    module.exports = {
  env: {
   ...
  },
  extends: [
   ...
  ],
  parserOptions: {
  ...
  },
  plugins: [
   ...
  ],
  rules: {
   ...
  },
  ignorePatterns: ['src/test/*'], // <<< ignore all files in test folder
};

或者您可以忽略带有某些扩展名的文件:

ignorePatterns: ['**/*.js']

您可以在此处阅读用户指南文档。

https://eslint.org/docs/user-guide/configuring/ignoring-code

【讨论】:

    【解决方案4】:

    YAML 版本:

    overrides:
      - files: *-tests.js
        rules:
          no-param-reassign: 0
    

    mocha 测试的具体规则示例:

    您还可以为文件夹设置特定的环境,如下所示:

    overrides:
      - files: test/*-tests.js
        env:
          mocha: true
    

    此配置将修复关于 describeit 未定义的错误消息,仅适用于您的测试文件夹:

    /myproject/test/init-tests.js
    6:1 错误 'describe' 未定义 no-undef
    9:3 错误 'it' 未定义 no-undef

    【讨论】:

      猜你喜欢
      • 2021-10-16
      • 1970-01-01
      • 2020-04-11
      • 2021-05-10
      • 2015-09-06
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      相关资源
      最近更新 更多