仅对某些文件/目录使用 ESLint 插件

Ant*_*gos 8 javascript eslint jestjs

我正在使用JestESLint 插件来整理我的 Jest 测试。我的项目结构是

my-project
|
|--tests
   |
   |--unit
   |
   |--e2e
Run Code Online (Sandbox Code Playgroud)

我只希望在掉毛文件时使用的玩笑插件tests/unit目录(因为文件tests/e2e是不是玩笑测试),但是当我运行掉毛,这个插件被应用到下的所有文件tests/unit,从而导致虚假错误的tests/e2e文件。

我可以tests/e2e通过添加以下内容来禁用目录中的单个规则eslintrc.js

module.exports = {
  root: true,
  env: {
    node: true,
    'jest/globals': true
  },
  extends: [
    'eslint:recommended',
    'plugin:jest/recommended',
  ],
  parserOptions: {
    parser: 'babel-eslint'
  },
  plugins: ['jest'],
  "overrides": [
    {
      "files": ["tests/e2e/*.js"],
      "rules": {
        "jest/no-disabled-tests": "off",
        "jest/expect-expect": "off",
        "jest/valid-expect-in-promise": "off"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是tests/e2e我不想禁用目录中的单个规则,而是想完全禁用 Jest 插件。

mar*_*don 16

来自关于覆盖的eslint 文档

glob 特定配置的工作方式几乎与任何其他 ESLint 配置相同。覆盖块可以包含在常规配置中有效的任何配置选项,但 root 和ignorePatterns 除外。

感谢对我有帮助的SO答案:Eslint允许基于glob模式的多个解析器

该答案中的示例还演示了重写插件。

我的示例使用两个覆盖部分,一个用于 JavaScript 文件,一个用于 TypeScript。这很可能是两个不同的目录。

{
"overrides": [
  {
    "files": "**/*.ts",
    "plugins": [
      "prettier",
      "@typescript-eslint"
    ],
    "extends": [
      "eslint-config-prettier",
      "prettier",
      "prettier/@typescript-eslint",
      "plugin:import/errors",
      "plugin:import/warnings",
      "plugin:import/typescript",
      "plugin:@typescript-eslint/recommended",
      "plugin:@typescript-eslint/recommended-requiring-type-checking",
      "plugin:prettier/recommended"
    ],
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
      "project": "./tsconfig.json"
    },
    "rules": {
     
    }
  },
  {
    // Disabling TypeScript lint rules for JS files.
    "files": "**/*.js",
    "plugins": [
      "prettier"
    ],
    "extends": [
      "esnext",
      "eslint-config-prettier",
      "prettier",
      "plugin:import/errors",
      "plugin:import/warnings",
      "plugin:prettier/recommended"
    ],
    "parser": "babel-eslint", 
    "parserOptions": {
    },
    "env": {
      "node": true
    },
    "rules": {
      
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

}


Ed *_*cas 0

ignorePatterns您可以在配置文件中使用或创建一个.eslintignore文件。

请参阅:https ://eslint.org/docs/user-guide/configuring#ignoring-files-and-directories

  • 这将完全禁用这些文件的 eslint,这不是 OP 所要求的。他只想禁用这些文件的 Jest 插件 (6认同)