关闭特定文件的eslint规则

时间:2016-01-13 10:31:09

标签: javascript configuration lint eslint

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

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

(类似于eslint-disable-line。)经常发生在我身上,在某个文件中,我打破了许多地方的特定规则,对于该文件被认为是可以的,但我不想要禁用整个项目的规则,也不想禁用该特定文件的其他规则。

17 个答案:

答案 0 :(得分:283)

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

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

or

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

更多信息:http://eslint.org/docs/user-guide/configuring.html#configuring-rules

答案 1 :(得分:160)

只需将/* eslint-disable */放在文件顶部

即可

检查:https://evanhahn.com/disable-eslint-for-a-file/

答案 2 :(得分:89)

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

<强> .eslintignore

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

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

答案 3 :(得分:77)

您还可以禁用/启用这样的规则:

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

与问题中提到的eslint-disable-line类似。如果您不希望在重新启用复杂规则配置时还原它,则可能是一种更好的方法。

答案 4 :(得分:38)

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

/* eslint-disable */

这将禁用ESLint直到

/* eslint-enable */

已达成评论。

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

答案 5 :(得分:28)

接受的答案对我没有用(可能是不同版本的eslint ......?我使用eslint v3.19.0),但确实找到了以下解决方案......

将以下内容放在文件顶部

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

这将禁用整个文件的规则

答案 6 :(得分:6)

/*eslint-disable */

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

/*eslint-enable */

它对我有用

答案 7 :(得分:5)

从今天开始,答案对我来说不起作用,但是将其放在文件的顶部起作用

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

重要的是,至少在我看来,评论的类型会有所作为。前面的评论对我有用,但是下面的不起作用

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

答案 8 :(得分:5)

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

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

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

答案 9 :(得分:3)

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

/* eslint-disable no-console */

答案 10 :(得分:3)

总结:

情况1:您要为“一个文件”禁用“所有规则”

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

情况2:您要禁用“某些文件”的“所有规则”

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

  1. 您可以使用案例1解决方案,并在文件顶部逐个添加/* eslint-disable */
  2. 您可以将文件名放在.eslintignore中。如果您有要忽略的 path ,则此方法效果很好。 (例如apidoc/**
  3. 或者,如果您不想拥有单独的.eslintignore文件,则可以添加 "eslintIgnore": ["file1.js", "file2.js"]中的package.json为 指示here

情况3:您要为“一个文件”禁用“某些规则”

/* eslint-disable no-use-before-define */注释放在文件顶部。更多示例here

情况4:您要为“某些文件”禁用“某些规则”

这不是那么简单。您应按照here的说明将它们放在"excludedFiles"的{​​{1}}部分的"overrides"对象中。

答案 11 :(得分:3)

最好在.eslintrc.js配置文件中添加“替代”。 例如,如果您不想为所有以Actions结尾的js文件禁用camelcase规则,则在.eslintrc.js中的规则作用域之后添加此代码。

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

答案 12 :(得分:2)

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

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

  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"]
    }
  }
]

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

答案 13 :(得分:1)

简单有效。

Eslint 6.7.0引入了“ ignorePatterns”,如以下示例所示将其写入.eslintrc.json:

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

See docs

答案 14 :(得分:1)

您可以在文件顶部添加这些行。

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

答案 15 :(得分:0)

您可以使用[Authorize(Roles = "Admin")] [HttpGet("[action]/{id}")] public User GetUser([FromRoute] int id) { UserLogic ul = new UserLogic(); return ul.GetUser(id); }

关闭文件的特定规则

if (head == null){ head = node; } else { FoodListNode tmp = head; while (tmp.next != null)->{ tmp = tmp.next; tmp.next = node; }<- }

版本:/*eslint [<rule: "off"], >]*/

答案 16 :(得分:0)

只需在项目根目录中创建一个空文件.eslintignore,然后键入要忽略的文件的路径即可。

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

行,忽略文件和目录