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

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

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


当前回答

如果你想为一个规则禁用ESLint,你可以在文件的顶部添加这个:

/* eslint-disable NAME_OF_THE_RULE */

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

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

其他回答

你也可以像这样禁用/启用一个规则:

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

类似于问题中提到的eslint-disable-line。如果您不想在重新启用规则配置时恢复复杂的规则配置,那么这可能是一个更好的方法。

禁用文件的指定规则。

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

注意,在eslint中有一个错误,单行注释将不起作用

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

查看这篇文章

您可以通过将配置放在文件的顶部来关闭/更改文件的特定规则。

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

or

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

更多信息

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

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

no-use-before-define max-lines-per-function

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

/规范

您可以将此添加到您的.eslintrc文件…

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

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

最好在.eslintrc.js配置文件中添加“overrides”。 例如,如果你不想对所有以Actions结尾的js文件禁用camelcase规则,在.eslintrc.js的rules scope后添加以下代码。

"rules": {    
...........    
},
"overrides": [
 {
  "files": ["*Actions.js"],
     "rules": {
        "camelcase": "off"   
     }
 }
]