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

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

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


当前回答

简单有效。

Eslint 6.7.0引入了"ignorePatterns"来在.eslintrc.json中编写,如下所示:

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

看文档

其他回答

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

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

版本:eslint@4.3.0

要禁用文件夹内文件的特定规则,您需要使用.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"   
     }
 }
]

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

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

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

所有规则 一条或多条特定规则(如引号或半引号)

问题二:你想忽略多少“行/文件”?

一行或多行 一个或多个文件中的所有行 到处都是

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


1)禁用“所有规则”


案例1.1:你想为“一行或多行”禁用“All Rules”

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

将/* eslint-disable-line */放在行末, 或者/* eslint-disable-next-line */行前。


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

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


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

有3种方法可以做到:

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


2)禁用“某些规则”


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

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

你可以把/* eslint-disable-line引号*/(用你的规则替换引号)放在行末, 或者/* eslint-disable-next-line no-alert,引号,半*/在行前。

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

// 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:你想禁用“One File”的“Some Rules”

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

这里有更多的例子。


案例2.3:你想禁用“一些文件”的“一些规则”

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

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

/* eslint-disable no-console */