关闭特定文件的 eslint 规则

Turning off eslint rule for a specific file

是否可以关闭整个文件的eslint规则?例如:

// eslint-disable-file no-use-before-define 

(类似于 eslint-disable-line。)我经常遇到这样的情况,在某个文件中,我在很多地方违反了一个特定的规则,这对那个文件来说是可以的,但我不我不想禁用整个项目的规则,也不想禁用该特定文件的其他规则。

您可以 off/change 通过将配置放在文件顶部来为文件设置特定规则。

/* eslint no-use-before-define: 0 */  // --> OFF

or

/* eslint no-use-before-define: 2 */  // --> ON

More info

您还可以disable/enable这样的规则:

/* eslint-disable no-use-before-define */
... code that violates rule ...
/* eslint-enable no-use-before-define */

类似于问题中提到的eslint-disable-line。如果您不想在 re-enabling 时恢复复杂的规则配置,这可能是更好的方法。

/* eslint-disable */

//suppress all warnings between comments
alert('foo');

/* eslint-enable */

这将禁用块中的所有 eslint 规则。

为文件禁用特定规则:

/* eslint-disable no-use-before-define */

请注意 eslint 中存在单行注释不起作用的错误 -

// eslint-disable max-classes-per-file
// This fails!

Check this post

您可以通过在项目的根目录中创建一个 .eslintignore 文件来告诉 ESLint ignore specific files and directories

.eslintignore

build/*.js
config/*.js
bower_components/foo/*.js

忽略模式的行为符合 .gitignore 规范。 (不要忘记重新启动您的编辑器。)

要暂时禁用文件中的规则警告,请使用以下格式的块注释:

/* eslint-disable */

这将禁用 ESLint,直到

/* eslint-enable */

评论已达。

您可以阅读有关此主题的更多信息here

接受的答案对我不起作用(也许是不同版本的 eslint...?我正在使用 eslint v3.19.0),但确实找到了以下解决方案...

将以下内容放在文件的顶部

/* eslint-disable no-use-before-define */

这将禁用整个文件的规则

您可以使用 /*eslint [<rule: "off"], >]*/

关闭文件的特定规则

/* eslint no-console: "off", no-mixed-operators: "off" */

版本:eslint@4.3.0

例如,您可以将其放在文件顶部:

/* eslint-disable no-console */

最好在您的 .eslintrc.js 配置文件中添加 "overrides"。 例如,如果您不想为所有以 Actions 结尾的 js 文件禁用驼峰规则,请在 .eslintrc.js.

中的规则作用域后添加此代码
"rules": {    
...........    
},
"overrides": [
 {
  "files": ["*Actions.js"],
     "rules": {
        "camelcase": "off"   
     }
 }
]

亲爱的开发者,让我们像往常一样分解场景!

首先要问自己两个问题。

问题一:你想忽略多少“规则”?

  1. 所有规则
  2. 一个或多个特定规则(例如quotessemi

问题二:你想忽略多少个“lines/files”?

  1. 一条或多条
  2. 一个或多个文件中的所有行
  3. 无处不在

现在,根据您的回答,有 2 × 3 = 6 个案例。


1) 禁用“所有规则”


案例 1.1:您想为“一行或多行”禁用“所有规则”

您可以通过两种方式做到这一点:

  1. /* eslint-disable-line */ 放在行的 末尾 ,
  2. /* eslint-disable-next-line */.
  3. 之前

案例1.2:您想为“一个文件”禁用“所有规则”

  • /* eslint-disable */的注释放在文件的顶部。

案例 1.3:您想为“某些文件”禁用“所有规则”

您可以通过 3 种方式执行此操作:

  1. 您可以使用 1.2 并在文件顶部添加 /* eslint-disable */,一个接一个。
  2. 您可以将文件名放在.eslintignore中。这很有效,特别是如果你有一个你想被忽略的 path。 (例如 apidoc/**
  3. 或者,如果您不想有一个单独的 .eslintignore 文件,您可以添加 "eslintIgnore": ["file1.js", "file2.js"]package.json 作为 指示 here.

2) 禁用“一些规则”


案例2.1:您想为“一行或多行”禁用“某些规则”

您可以通过两种方式做到这一点:

  1. 您可以在行尾放置 /* eslint-disable-line quotes */(用您的规则替换 quotes),

  2. /* eslint-disable-next-line no-alert, quotes, semi */行前。

专业提示:如果您有多行要忽略相同的规则,您可以像这样禁用和启用规则:

// Assume these lines are long engouh that max-len is gonna trigger

/* eslint-disable max-len */
console.log("I am a loooooooooo...ooooong line 1, but eslint doesn't bug!");
console.log("I am a loooooooooo...ooooong line 2, but eslint doesn't bug!");
console.log("I am a loooooooooo...ooooong line 3, but eslint doesn't bug!");
/* eslint-enable max-len */
console.log("I am a loooooooooo...ooooong line 4, AND eslint's GONNA CRY!"); // <--- eslint is gonna cry over this one only!

案例2.2:您想为“一个文件”禁用“一些规则”

  • /* eslint-disable no-use-before-define */ 注释放在文件顶部。

更多示例here


案例2.3:您想为“某些文件”禁用“某些规则”

  • 这不太简单。您应该在 .eslintrc 中创建一个 "overrides" 部分,并指定哪些规则应该 disabled/modified 哪些 globs/files。可以找到示例 .

您可以配置 eslint 覆盖 属性 以关闭与 glob 模式匹配的文件的特定规则,如下所示。

在这里,我想关闭 no-duplicate-string 测试所有文件的规则。

overrides: [
  {
    files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
    rules: {
      'sonarjs/no-duplicate-string': 'off'
    }
  }
]

截至今天,答案对我不起作用,但将其放在文件顶部 有效:

/* eslint-disable @typescript-eslint/no-unused-vars */

重要的是要知道,至少在我的情况下,评论的类型会有所不同。之前的评论对我有效,但以下 无效 :

// eslint-disable @typescript-eslint/no-unused-vars

只需在您的项目根目录中创建一个空文件.eslintignore,然后输入您希望忽略的文件的路径。

来源:https://eslint.org/docs/2.13.1/user-guide/configuring#:~:text=To%20disable%20rule%20warnings%20in,*%2F%20alert('foo')%3B

忽略文件和目录

要禁用文件夹内文件的特定规则,您需要使用 .eslintrc 配置文件的 "overrides" 键。

例如,如果您要删除以下规则:

  1. no-use-before-define
  2. max-lines-per-function

对于以下主目录中的所有文件:

/spec

您可以将其添加到您的 .eslintrc 文件中...

"overrides": [
  {
    "files": ["spec/**/*.js"],
    "rules": {
      "no-use-before-define": ["off"],
      "max-lines-per-function": ["off"]
    }
  }
]

请注意,我在 spec/**/*.js glob 中使用了 **,这意味着我正在递归查找 中的所有子文件夹 34=]文件夹 调用了 spec 并选择所有以 js 结尾的文件以便从中删除所需的规则。

简单有效。

Eslint 6.7.0 引入了“ignorePatterns”来将其写入。eslintrc.json 就像这个例子:

{
    "ignorePatterns": ["fileToBeIgnored.js"],
    "rules": {
        //...
    }
}

See docs

如果您想为一条规则禁用 ESLint,您可以将其添加到文件顶部:

/* eslint-disable NAME_OF_THE_RULE */

如果你想在文件中禁用 ESLint 或 TypeScript 检查,你可以在文件顶部添加这些行。第一个将禁用 TypeScript 检查,第二个将禁用 ESLint 检查。

// @ts-nocheck
/* eslint-disable */

要暂时禁用文件中的规则警告,请使用以下格式的块注释:

/* 禁用 eslint */

警报('foo');

/* eslint 启用 */ 您还可以禁用或启用特定规则的警告:

/* eslint-disable no-alert, no-console */

警报('foo'); console.log('bar');

/* eslint-enable no-alert, no-console / 要在整个文件中禁用规则警告,请在文件顶部放置一个 / eslint-disable */ 块注释:

/* 禁用 eslint */

警报('foo'); 您还可以为整个文件禁用或启用特定规则:

/* eslint-禁用无警报 */

警报('foo'); 要禁用特定行上的所有规则,请使用以下格式之一的行注释:

以下是为页面禁用 ESLint 的一些示例

警报('foo'); // eslint-disable-line

// eslint-disable-next-line 警报('foo'); 要在特定行上禁用特定规则:

警报('foo'); // eslint-disable-line no-alert

// eslint-disable-next-line no-alert 警报('foo'); 要在特定行上禁用多个规则:

警报('foo'); // eslint-disable-line no-alert, quotes, semi

// eslint-disable-next-line no-alert, quotes, semi 警报('foo');


执行以下步骤从您的项目中禁用 ESLint

  • 打开项目中的 package.config 文件。
  • 删除与 ESLint 相关的所有依赖项。
  • 从项目中删除 eslint.js/eslintconfig 个文件
  • 运行 命令 npm 安装
  • 现在 运行 你的项目