关闭特定文件的eslint规则

Tom*_*ich 324 javascript configuration lint eslint

是否可以关闭整个文件的eslint规则?像这样的东西:

// eslint-disable-file no-use-before-define 
Run Code Online (Sandbox Code Playgroud)

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

Gya*_*eep 346

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

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

or

/* eslint no-use-before-define: 2 */  // --> ON
Run Code Online (Sandbox Code Playgroud)

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

  • @Jeremy看到我的回答.您只需要将`.eslintignore`文件添加到项目根目录中. (9认同)
  • 有没有办法将规则放在`.eslintrc`中,强制执行所有**文件特定的**规则到文件的顶部? (5认同)
  • 我试过 /* eslint-disable rule-name */ 并且它起作用了 (4认同)
  • @杰里米是的。我设计了一种从特定文件或文件夹中删除特定规则的方法。请在这里检查我的答案:/sf/answers/4554834861/ @prograhammer 将文件放在“.eslintignore”上将禁用文件中的所有规则。但@Jeremy 希望禁用文件中的特定规则。 (2认同)

Wah*_*ome 208

只需放在/* eslint-disable */文件的顶部即可

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

  • 这将禁用该块中的所有eslint规则,而不仅仅是要忽略的"no-use-before-define" (22认同)
  • @Wahome"是否可以为整个文件关闭eslint**规则**?" 单词规则是*singular*.你的答案会关闭所有*规则*复数. (21认同)
  • 对于其他对评论感到困惑的人,“/* eslint-disable no-use-before-define */”绝对是一个正确的答案,它禁用整个文件的“特定”规则。请注意答案中的编辑。这些评论针对的是原始答案,即“只需将 /* eslint-disable */ 放在文件顶部”。 (12认同)
  • 基本上这就是整个想法.问题是"是否可以关闭**整个文件的夹具规则**?" (11认同)
  • 在描述中他提到他想要像禁用特定规则那样的东西再次问题! (7认同)
  • 只需在末尾附加规则 `/* eslint-disable no-use-before-define */` (3认同)
  • 显然,“/*”和“*/”很重要(“//”不起作用)。 (3认同)
  • 的确,这不能解决整个问题,但仍然是一个有用的答案,因为在谷歌搜索“取消忽略文件”时,该线程是最佳结果 (2认同)

pro*_*mer 110

您可以通过在项目的根目录中创建文件来告诉ESLint 忽略特定的文件和.eslintignore目录:

.eslintignore

build/*.js
config/*.js
bower_components/foo/*.js
Run Code Online (Sandbox Code Playgroud)

忽略模式根据.gitignore规范行事.(别忘了重新启动编辑器.)

  • 是否可以仅忽略此文件中的特定规则? (6认同)
  • 很不错!您还可以使用**以递归方式添加目录、子目录、子子目录中的文件。例如:`spec/javascripts/**/*.js`。 (2认同)
  • 此答案禁用这些文件中的**所有**规则。为了从文件中删除 **具体** 规则,您可以检查我的答案 /sf/answers/4554834861/ (2认同)

epp*_*lon 97

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

/* eslint-disable no-use-before-define */
... code that violates rule ...
/* eslint-enable no-use-before-define */
Run Code Online (Sandbox Code Playgroud)

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


小智 44

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

/* eslint-disable */
Run Code Online (Sandbox Code Playgroud)

这将禁用ESLint直到

/* eslint-enable */
Run Code Online (Sandbox Code Playgroud)

评论已达成.

你可以阅读更多有关此主题在这里.


sfl*_*che 33

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

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

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

这将禁用整个文件的规则

  • ...或多个,如`/*eslint-disable no-unused-vars,no-console,import/no-extraneous-dependencies,spaced-comment*/` (7认同)

And*_*riy 32

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

"rules": {    
...........    
},
"overrides": [
 {
  "files": ["*Actions.js"],
     "rules": {
        "camelcase": "off"   
     }
 }
]
Run Code Online (Sandbox Code Playgroud)

  • 答案严重不足! (5认同)
  • 在文件中进行的绝佳替代方案。 (4认同)
  • 效果很好!恕我直言,这应该是公认的答案。这种方式保留在 eslintrc 文件中(保持源文件干净),并且可以覆盖特定文件的特定规则的行为。+1 (3认同)

Aid*_*din 29

根据要忽略的规则数量(全部或某些),以及禁用该规则的范围(行,文件,无处不在),我们得出2×3 = 6种情况。


1)禁用“所有规则”

情况1.1:您要禁用“一个或多个行”的“所有规则”

/* eslint-disable-line */所述线(S)的端部,或/* eslint-disable-next-line */向右前行

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

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

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

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

  1. 您可以使用1.2并/* eslint-disable */一个接一个地添加文件。
  2. 您可以将文件名放在中.eslintignore。这特别有效,如果您有要忽略的路径。(例如apidoc/**
  3. 另外,如果你不希望有一个单独的.eslintignore文件,你可以添加 "eslintIgnore": ["file1.js", "file2.js"]package.json按照指示在这里

2)禁用“某些规则”

情况2.1:您想要为“一个或多个行”禁用“某些规则”

您可以将/* eslint-disable-line quotes */quotes用规则替换)放在行的末尾或/* eslint-disable-next-line no-alert, quotes, semi */行的前面。

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

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

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

这不太直接。您应该按照此处的指示将它们放在您"excludedFiles""overrides"部分对象中。.eslintrc

  • 附注。案例 5:您想禁用“所有文件”的“所有规则”——`npm uninstall eslint`!:p (9认同)
  • 另请注意,您只能对“eslint-disable”使用“/* */”样式注释。`// eslint-disable no-use-before-define` 不起作用。它适用于 `// eslint-disable-next-line`。 (2认同)
  • 在我阅读您的评论期间,我正是需要 **案例 2.3**,并且您的答案没有完全解释它。对于任何想了解 **案例 2.3** 的人,这里有完整的解释:/sf/answers/4554834861/。PS:如果您想禁用特定文件的特定规则,“excludedFiles”不起作用。 (2认同)

小智 14

只需将其添加到文件的顶部即可。这将分别禁用所有 eslint 警告。

/* eslint-disable */
Run Code Online (Sandbox Code Playgroud)


Vic*_*tor 11

要禁用文件夹内文件的特定规则,您需要使用配置文件的"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"]
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

请注意,我用**的内spec/**/*.js 水珠,这意味着我在找递归所有子文件夹里面的文件夹spec和选择所有文件与两端js,以从中取出所需的规则。

  • 我不明白你的担忧,因为这种方法恰好将规则覆盖集中在一个地方:“.eslintrc”文件。 (4认同)

fjp*_*urr 11

简单有效。

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

{
    "ignorePatterns": ["fileToBeIgnored.js"],
    "rules": {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

查看文档


Sha*_*kil 8

/*eslint-disable */

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

/*eslint-enable */
Run Code Online (Sandbox Code Playgroud)

它对我有用

  • 这将禁用该块中的所有eslint规则,而不仅仅是要忽略的"no-use-before-define" (4认同)

OZZ*_*ZIE 8

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

/* eslint-disable no-console */
Run Code Online (Sandbox Code Playgroud)


Sag*_*ane 6

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

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

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


Jav*_*zán 5

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

/* eslint-disable @typescript-eslint/no-unused-vars */
Run Code Online (Sandbox Code Playgroud)

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

// eslint-disable @typescript-eslint/no-unused-vars
Run Code Online (Sandbox Code Playgroud)


Muh*_*ssa 5

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

/* eslint-disable NAME_OF_THE_RULE */
Run Code Online (Sandbox Code Playgroud)

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

// @ts-nocheck
/* eslint-disable */
Run Code Online (Sandbox Code Playgroud)