关闭特定文件的eslint规则

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

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

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

470814 次浏览

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

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


or


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

更多信息

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

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

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

/* 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!

检查这个帖子

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

.eslintignore

build/*.js
config/*.js
bower_components/foo/*.js
忽略模式的行为根据.gitignore规范。 (别忘了重新启动编辑器)

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

/* eslint-disable */

这将禁用ESLint直到

/* eslint-enable */

已发表评论。

您可以阅读更多关于在这里的主题。

接受的答案不适合我(可能是eslint的不同版本…?)我使用eslint v3.19.0),但确实找到了一个解决方案与以下…

将以下内容放在文件顶部

# EYZ0

这将禁用整个文件的规则

您可以使用/*eslint [<rule: "off"], >]*/关闭文件的特定规则

# EYZ0

版本:# EYZ0

例如,你可以把这个放在文件的顶部:

/* eslint-disable no-console */
最好在你的.eslintrc.js配置文件中添加“overrides”。 例如,如果你不想对所有以Actions结尾的js文件禁用camelcase规则,请在.eslintrc.js中的rules scope .

.js中添加以下代码
"rules": {
...........
},
"overrides": [
{
"files": ["*Actions.js"],
"rules": {
"camelcase": "off"
}
}
]

亲爱的优秀的开发人员,像您经常做的那样,让我们对这些场景进行分析吧!

首先,你要问自己两个问题。

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

  1. 所有规则
  2. 一个或多个具体的规则(例如quotessemi)

问题二:有多少行/文件;你想忽略吗?

  1. 一个或多个
  2. 所有行在一个或多个文件
  3. 到处都是

现在,根据你的答案,有2 × 3 = 6种情况。


1)禁用“所有规则”;


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

有两种方法可以做到这一点:

  1. /* eslint-disable-line */放在一行的末尾
  2. 或者/* eslint-disable-next-line */排队前

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

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

案例1.3:您想禁用“所有规则”;对于“一些文件”;

有3种方法可以做到:

  1. 您可以使用1.2并在文件顶部逐个添加/* eslint-disable */
  2. 您可以将文件名放在.eslintignore中。这很有效,特别是如果你有一个路径,你想要忽略它。(例如# EYZ1)
  3. 或者,如果你不想有一个单独的.eslintignore文件,你可以添加 "eslintIgnore": ["file1.js", "file2.js"]package.json作为 李指导# EYZ0。< / >

2)禁用“某些规则”;


案例2.1:您想禁用“Some Rules"“一行或多行”;

有两种方法可以做到这一点:

  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:您想禁用“Some rules”;对于“一个文件”;

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

更多的例子在这里


案例2.3:您想禁用“Some Rules"对于“一些文件”;

  • 这就不那么简单了。您应该在.eslintrc中创建"overrides"部分,并指定应该为哪些glob /文件禁用/修改哪些规则。一个例子可以在在这个答案中中找到。

你可以配置eslint overrides属性来关闭匹配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在你的项目根类型文件的路径,你想要它被忽略。

来源:# EYZ0

行# EYZ0

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

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

  1. # EYZ0
  2. # EYZ0

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

# EYZ0

你可以把它添加到你的.eslintrc文件…

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

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

简单有效。

Eslint 6.7.0带来了“忽略模式”;在.eslintrc.json中编写,如下所示:

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

参见docs

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

/* eslint-disable NAME_OF_THE_RULE */

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

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

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

/* eslint-disable */

警报(“foo”);

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

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

< p >警报(“foo”); console.log('酒吧');< / p >

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

/* eslint-disable */

< p >警报(“foo”); 您还可以禁用或启用整个文件的特定规则:

/* eslint-disable no-alert */

< p >警报(“foo”); 要禁用某一行上的所有规则,可以使用以下格式之一的行注释:

下面是一些禁用页面ESLint的例子

警报(“foo”);/ / eslint-disable-line

< p > / / 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”);< / p >


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

  • 打开的包。配置文件在您的项目。
  • 删除与ESLint相关的所有依赖项。
  • 从你的项目中删除eslint.js/eslintconfig文件
  • 执行命令NPM install
  • 现在运行你的项目
只要把这个添加到你的文件顶部。 这将分别禁用所有eslint警告
/* eslint-disable */