是否可以关闭整个文件的 eslint 规则?例如:
// eslint-disable-file no-use-before-define
(类似于 eslint-disable-line。)它经常发生在我身上,在某个文件中,我在许多地方违反了对该文件认为可以的特定规则,但我不想禁用整个项目的规则,我也不想禁用该特定文件的其他规则。
/* eslint-disable */
个答案,那就太好了
您可以通过将配置放在文件顶部来关闭/更改文件的特定规则。
/* eslint no-use-before-define: 0 */ // --> OFF
or
/* eslint no-use-before-define: 2 */ // --> ON
要禁用文件的特定规则:
/* eslint-disable no-use-before-define */
请注意,eslint 中有一个错误,其中单行注释不起作用 -
// eslint-disable max-classes-per-file
// This fails!
no-use-before-define
让我们像往常一样对场景进行细分,亲爱的开发人员!
这里有两个问题要问自己,首先。
问题一:你想忽略多少“规则”?
所有规则 一个或多个特定规则(例如报价或半规则)
问题二:您要忽略多少“行/文件”?
一行或多行 一个或多个文件中的所有行 无处不在
现在,根据您的回答,有 2 × 3 = 6 个案例。
1)禁用“所有规则”
案例 1.1:您想禁用“一条或多条线”的“所有规则”
有两种方法可以做到这一点:
将 /* eslint-disable-line */ 放在行尾,或 /* eslint-disable-next-line */ 就在该行之前。
案例 1.2:您想禁用“一个文件”的“所有规则”
将 /* eslint-disable */ 的注释放在文件顶部。
案例 1.3:您想禁用“某些文件”的“所有规则”
有 3 种方法可以做到这一点:
您可以使用 1.2 并在文件顶部逐一添加 /* eslint-disable */。您可以将文件名放在 .eslintignore 中。这很好用,特别是如果您有一条希望被忽略的路径。 (例如 apidoc/**) 或者,如果您不想拥有单独的 .eslintignore 文件,您可以按照此处的说明在 package.json 中添加 "eslintIgnore": ["file1.js", "file2.js"] .
2)禁用“一些规则”
案例 2.1:您想为“一行或多行”禁用“某些规则”
有两种方法可以做到这一点:
您可以将 /* eslint-disable-line quotes */ (用您的规则替换引号)放在行尾,或 /* eslint-disable-next-line no-alert, quotes, semi */ before线。
专业提示:如果您有多个要忽略相同规则的行,您可以禁用和启用这样的规则:
// 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:您想为“一个文件”禁用“某些规则”
将 /* eslint-disable no-use-before-define */ 注释放在文件顶部。
更多示例 here。
案例 2.3:您想为“某些文件”禁用“某些规则”
这不那么简单。您应该在 .eslintrc 中创建一个“覆盖”部分,并指定应该为哪些 glob/文件禁用/修改哪些规则。在这个答案中可以找到一个例子。
npm uninstall eslint
! :p
eslint-disable
使用 /* */
样式注释。 // eslint-disable no-use-before-define
行不通。但它适用于 // eslint-disable-next-line
。
"excludedFiles"
不起作用。
您可以通过在项目的根目录中创建一个 .eslintignore
文件来告诉 ESLint ignore specific files and directories:
.eslintignore
build/*.js
config/*.js
bower_components/foo/*.js
忽略模式的行为符合 .gitignore
规范。 (不要忘记重新启动编辑器。)
spec/javascripts/**/*.js
。
您还可以禁用/启用这样的规则:
/* eslint-disable no-use-before-define */
... code that violates rule ...
/* eslint-enable no-use-before-define */
类似于问题中提到的 eslint-disable-line
。如果您不想在重新启用复杂的规则配置时恢复它,这可能是一种更好的方法。
// esint-disable-line
或 /* eslint-disable-next-line */
仅用于一行。在我的回答中找到更多详细信息:stackoverflow.com/a/56719951/2321594
最好在 .eslintrc.js 配置文件中添加“覆盖”。例如,如果您不想为所有以 Actions 结尾的 js 文件禁用驼峰式规则,请将此代码添加到 .eslintrc.js 中的规则范围之后。
"rules": {
...........
},
"overrides": [
{
"files": ["*Actions.js"],
"rules": {
"camelcase": "off"
}
}
]
*.d.ts
文件,因此您可以停止对 no-unused-vars
或 max-classes-per-file
或 no-use-before-define
之类的类型定义发出 linting 警告
要暂时禁用文件中的规则警告,请使用以下格式的块注释:
/* eslint-disable */
这将禁用 ESLint,直到
/* eslint-enable */
发表评论。
您可以阅读有关此主题的更多信息here。
要禁用文件夹内文件的特定规则,您需要使用 .eslintrc
配置文件的 "overrides"
键。
例如,如果要删除以下规则:
no-use-before-define max-lines-per-function
对于以下主目录中的所有文件:
/spec
您可以将此添加到您的 .eslintrc
文件中...
"overrides": [
{
"files": ["spec/**/*.js"],
"rules": {
"no-use-before-define": ["off"],
"max-lines-per-function": ["off"]
}
}
]
请注意,我在 spec/**/*.js
glob 中使用了 **
,这意味着我正在递归查找名为 spec
的 文件夹 内的所有 子文件夹 并选择所有文件以 js
结尾,以便从中删除所需的规则。
.eslintrc
/.eslintignore
)或按行/文件执行,或两者兼而有之,可能会更容易。
.eslintrc
文件。
.eslintrc
文件放在不同的文件夹中。我的错。 :)
接受的答案对我不起作用(可能是不同版本的 eslint...?我正在使用 eslint v3.19.0
),但确实找到了以下解决方案...
将以下内容放在文件顶部
/* eslint-disable no-use-before-define */
这将禁用整个文件的规则
/* eslint-disable no-unused-vars, no-console, import/no-extraneous-dependencies, spaced-comment */
eslint
更改为 eslint-disable
并删除 : 0
。使用 eslint@4.19.1。
/* eslint-disable */
//suppress all warnings between comments
alert('foo');
/* eslint-enable */
这将禁用块内的所有 eslint 规则。
no-use-before-define
简单有效。
Eslint 6.7.0 带来了 "ignorePatterns" 以将其写入 .eslintrc.json 中,如下例所示:
{
"ignorePatterns": ["fileToBeIgnored.js"],
"rules": {
//...
}
}
如果你想为一个规则禁用 ESLint,你可以将它添加到文件的顶部:
/* eslint-disable NAME_OF_THE_RULE */
如果要在文件中禁用 ESLint 或 TypeScript 检查,可以在文件顶部添加这些行。第一个将禁用 TypeScript 检查,第二个将禁用 ESLint 检查。
// @ts-nocheck
/* eslint-disable */
例如,您可以将其放在文件顶部:
/* eslint-disable no-console */
您可以配置 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
您可以使用 /*eslint [<rule: "off"], >]*/
关闭文件的特定规则
/* eslint no-console: "off", no-mixed-operators: "off" */
版本:eslint@4.3.0
只需在您的项目根目录中创建一个空文件 .eslintignore
,输入您希望忽略它的文件的路径。
行忽略文件和目录
要暂时禁用文件中的规则警告,请使用以下格式的块注释:
/* 禁用 eslint */
警报('foo');
/* eslint-enable */ 您还可以禁用或启用特定规则的警告:
/* eslint-disable no-alert, no-console */
警报('foo'); console.log('bar');
/* eslint-enable no-alert, no-console / 要在整个文件中禁用规则警告,请在文件顶部放置 / eslint-disable */ 块注释:
/* 禁用 eslint */
警报('foo');您还可以禁用或启用整个文件的特定规则:
/* eslint-disable no-alert */
警报('foo');要禁用特定行上的所有规则,请使用以下格式之一的行注释:
以下是为页面禁用 ESLint 的一些示例
警报('foo'); // eslint-disable-line
// eslint-disable-next-line alert('foo');要禁用特定行上的特定规则:
警报('foo'); // eslint-disable-line no-alert
// eslint-disable-next-line no-alert alert('foo');要禁用特定行上的多个规则:
警报('foo'); // eslint-disable-line no-alert, quotes, semi
// eslint-disable-next-line no-alert, quotes, semi alert('foo');
执行以下步骤从您的项目中禁用 ESLint
在您的项目中打开 package.config 文件。
删除所有与 ESLint 相关的依赖项。
从项目中删除 eslint.js/eslintconfig 文件
运行命令 npm install
现在运行你的项目
.eslintrc
中放置一个规则,将所有像这样的文件特定规则强制到文件的顶部?.eslintignore
文件添加到您的项目根目录。.eslintignore
将禁用文件中的所有规则。但是@Jeremy 想要禁用文件中的特定规则。