是否可以关闭整个文件的eslint规则?如:
// eslint-disable-file no-use-before-define
(类似于eslint-disable-line。)我经常碰到,在某个文件中,我在许多地方违反了一个特定规则,该规则对该文件来说还可以,但是我不想禁用该规则。整个项目的规则,我也不想禁用该特定文件的其他规则。
是否可以关闭整个文件的eslint规则?如:
// eslint-disable-file no-use-before-define
(类似于eslint-disable-line。)我经常碰到,在某个文件中,我在许多地方违反了一个特定规则,该规则对该文件来说还可以,但是我不想禁用该规则。整个项目的规则,我也不想禁用该特定文件的其他规则。
Answers:
您可以通过将配置放在文件顶部来关闭/更改文件的特定规则。
/* eslint no-use-before-define: 0 */ // --> OFF
or
/* eslint no-use-before-define: 2 */ // --> ON
.eslintrc
将所有这样的文件特定规则强制执行到文件顶部?
.eslintignore
项目根目录添加文件即可。
.eslintignore
又/* eslint no-use-before-define: 0 */ // --> OFF
如何呢?
禁用文件的特定规则:
/* eslint-disable no-use-before-define */
请注意,eslint中存在一个错误,其中单行注释无法正常工作-
// eslint-disable max-classes-per-file
// This fails!
no-use-before-define
要忽略的规则
您可以通过在项目的根目录中创建一个文件来告诉ESLint 忽略特定的文件和.eslintignore
目录:
.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
问题中提到的类似。如果您不想在重新启用复杂的规则配置后恢复它,则它可能是一种更好的方法。
根据您要忽略的规则数量(全部或某些),以及禁用该规则的范围(行,文件,无处不在),我们得出2×3 = 6种情况。
情况1.1:您要禁用“一个或多个行”的“所有规则”
Put `/* eslint-disable-line */` at the **end of the line(s)**,
or `/* eslint-disable-next-line */` right **before the line**.
情况1.2:您要禁用“一个文件”的“所有规则”
Put the comment of `/* eslint-disable */` at the top of the file.
情况1.3:您要禁用“某些文件”的“所有规则”
您可以通过3种方式执行此操作:
/* eslint-disable */
一个接一个地添加文件。.eslintignore
。这特别适用,如果您有要忽略的路径。(例如apidoc/**
).eslintignore
文件,你可以添加
"eslintIgnore": ["file1.js", "file2.js"]
在package.json
按照指示在这里。情况2.1:您想要为“一个或多个行”禁用“某些规则”
You can put `/* eslint-disable-line quotes */` (replace `quotes` with your rules) at the end of the line(s),
or `/* eslint-disable-next-line no-alert, quotes, semi */` before the line.
情况2.2:您要禁用“一个文件”的“某些规则”
Put the `/* eslint-disable no-use-before-define */` comment at the top of the file.
这里有更多示例。
##案例2.3:您要为“某些文件”禁用“某些规则”
这不太直接。您应该按照此处的指示将它们放在您"excludedFiles"
的"overrides"
部分对象中。.eslintrc
npm uninstall eslint
!:P
/* */
样式注释eslint-disable
。 // eslint-disable no-use-before-define
是行不通的。它适用于// eslint-disable-next-line
。
最好在.eslintrc.js配置文件中添加“替代”。例如,如果您不想为所有以Actions结尾的js文件禁用驼峰规则,则在.eslintrc.js中的规则作用域后添加此代码。
"rules": {
...........
},
"overrides": [
{
"files": ["*Actions.js"],
"rules": {
"camelcase": "off"
}
}
]
接受的答案对我不起作用(也许是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 */
它对我有用
no-use-before-define
要忽略的规则
您可以使用以下命令关闭文件的特定规则 /*eslint [<rule: "off"], >]*/
/* eslint no-console: "off", no-mixed-operators: "off" */
版: eslint@4.3.0
您可以配置eslint覆盖属性以关闭与如下所示的glob模式匹配的文件的特定规则。
在这里,我想关闭no-duplicate-string
测试所有文件的规则。
overrides: [
{
files: ["**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)"],
rules: {
'sonarjs/no-duplicate-string': 'off'
}
}
]