ChatGPT解决这个技术问题 Extra ChatGPT

关闭特定行的 eslint 规则

为了关闭 JSHint 中特定行的 linting 规则,我们使用以下规则:

/* jshint ignore:start*/
$scope.someVar = ConstructorFunction();
/* jshint ignore:end */

我一直在尝试为 eslint 找到上述内容的等价物。

使用 eslint-disable-next-line
从 ESLint v7 开始,您可以 specify the reason 在同一评论中禁用给定规则。
要禁用多个特定规则:// eslint-disable-line no-console, max-len

m
mikemaccana

要禁用下一行:

// eslint-disable-next-line no-use-before-define
var thing = new Thing();

或者使用单行语法:

var thing = new Thing(); // eslint-disable-line no-use-before-define

请参阅eslint docs


现在我遇到了另一个 eslint 问题:warning Unexpected comment inline with code no-inline-comments :(
对我很有用。此外,如果您不关心特异性,您可以执行 //eslint-disable-line 并且它似乎会禁用给定行的所有规则。
出于某种原因,这对我不起作用;我正在运行 eslint 3.8.0。我必须使用 /*eslint-disable */ 和 /*eslint-enable */。知道为什么会这样吗?我喜欢单线方法
@SomethingOn 有同样的问题,原来我打开了 --no-inline-config,其中 Prevent comments from changing config or rules
不适用于“gulp-eslint”:“^3.0.1”。我必须使用 /*eslint-disable */
S
SherylHohman

更新

ESlint 现在已更新为禁用单行的更好方法,请参阅 @goofballLogic 的 excellent answer

老答案:

您可以使用以下

/*eslint-disable */

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

/*eslint-enable */

稍微隐藏在 docs 的“配置规则”部分;

要禁用整个文件的警告,您可以在文件顶部添加注释,例如

/*eslint eqeqeq:0*/

顺便说一句,似乎 // 注释语法不起作用......
还有一个旁注,我正在寻找为 html 中的一行禁用 eslint。这工作:thumbup:
D
Darren Shewry

您还可以通过在启用(打开)和禁用(关闭)块中指定特定规则/规则(而不是全部)来禁用它们:

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

alert('foo');
console.log('bar');

/* eslint-enable no-alert */

通过上面@goofballMagic 的链接:http://eslint.org/docs/user-guide/configuring.html#configuring-rules


确保您的 eslint 评论通过 eslint! -> Expected exception block, space or tab after '/*' in comment. :)
我使用 prettiereslint 的组合来格式化我的代码。这不允许内联注释。许多 /* eslint-disable-next-line ... */ 语句很难在代码中阅读和发现。
J
James Skemp

Configuring ESLint - Disabling Rules with Inline Comments

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


/* eslint-disable */

alert('foo');

/* eslint-enable */


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

alert('foo');
console.log('bar');

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


/* eslint-disable */

alert('foo');


/* eslint-disable no-alert */

alert('foo');


alert('foo'); // eslint-disable-line

// eslint-disable-next-line
alert('foo');


alert('foo'); // eslint-disable-line no-alert

// eslint-disable-next-line no-alert
alert('foo');


alert('foo'); // eslint-disable-line no-alert, quotes, semi

// eslint-disable-next-line no-alert, quotes, semi
alert('foo');


foo(); // eslint-disable-line example/rule-name

B
Brylie Christopher Oxley

回答

您可以使用内联注释:// eslint-disable-next-line rule-name

例子

// eslint-disable-next-line no-console
console.log('eslint will ignore the no-console on this line of code');

参考

ESLint - Disabling Rules with Inline Comments


刚刚开始,最近的文档页面(至少截至今天)显示如何通过评论暂时关闭功能的示例已从您提供的页面移至 eslint.org/docs/user-guide/configuring/rules#disabling-rules
L
Lee Goddard

一般的行尾注释 // eslint-disable-line 后面不需要任何内容:无需查找代码来指定您希望 ES Lint 忽略的内容。

如果你需要忽略任何语法而不是快速调试,你就会遇到问题:为什么不更新你的 delint 配置呢?

我喜欢 // eslint-disable-line 允许我插入 console 以快速检查服务,而我的开发环境不会因为违反协议而阻碍我。 (我通常禁止 console,并使用日志记录类 - 有时建立在 console 之上。)


没有冒犯,但这与接受的答案是相同的解决方案,所以不确定这有什么帮助?
不要这样做。如果您有 5 个错误在线,它们都将被忽略。始终明确设置要忽略的规则,否则孩子们会弄得一团糟。
@FilipDupanović 如果您的程序员可以在一行代码中弄得一团糟,仅仅是因为 eslint 没有在他们的肩膀上寻找一行代码。您的公司确实有其他问题...也就是说,说出您希望忽略的规则可以更清楚地说明您首先将禁用行放在那里的原因。
@FilipDupanović 也许 eslint 应该有一个元规则来要求忽略显式规则?也许它已经做到了。
@Josef.B 有一个非标准规则:github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/… 它工作得非常好。
R
Raymond Wachaga

或者对于下一行的多个忽略,使用逗号将规则串起来

// eslint-disable-next-line class-methods-use-this, no-unused-vars

F
Farhan Salam

要为以下文件的其余部分禁用单个规则:

/* eslint no-undef: "off"*/
const uploadData = new FormData();

/* eslint-disable no-new */
4
4b0

要禁用特定行上的所有规则:

alert('foo'); // eslint-disable-line

S
SherylHohman

我的回答与其他人给出的答案相似,但显示了如何在同一行上为自己添加评论。

// eslint-disable-line // THIS WON"T WORK

如果您还需要在该行上写评论,请使用 --(例如,也许禁用 eslint 的原因)

// eslint-disable-line -- comment to self (This DOES work)

可以与特定的 eslint 规则结合使用来忽略:

// eslint-disable-line no-console -- comment to self (This Also Works!)

S
Sid

单行注释在反应哑功能组件中对我不起作用,我通过添加 /* eslint-disable insertEslintErrorDefinitionHere */ 使用文件级禁用

(通常如果您使用 vs 代码并遇到 eslint 错误,您可以单击给出错误的行,并且在 vs 代码中会出现一个灯泡,右键单击灯泡并选择任何禁用选项,vs 代码将执行此操作你。)


Y
Yubin Shinhmar

您可以在项目中添加给 .eslintignore 文件带来错误的文件。就像所有 .vue 文件一样,只需添加 /*.vue


它要求一行,而不是整个文件
他也可以停止使用 eslint... 如果您只是要忽略每个有问题的文件,为什么还要使用它?