有没有一种方法可以抑制给定行的JSHint警告?


264

我的应用中有一个(单个)用例,我eval只想针对这种情况禁止JSHint警告。

有办法实现吗?配置,魔术评论,...?

Answers:


465

是的,有办法。实际上两个。201310月, jshint添加了一种忽略以下代码块的方法:

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
// Code here will be linted with JSHint.

您还可以忽略带有尾随注释的单行,如下所示:

ignoreThis(); // jshint ignore:line

对于试图使JSHint Sublime Text 2/3插件起作用的任何人,您将需要在ST软件包文件夹中专门升级jshint。(我专门与JSHint Gutter碰到了这一点)
乔什(Josh

7
是否可以仅忽略特定错误?例如。在该特定行上的maxlen仍然检测到其他错误。
尔根·保罗(

4
感谢天哪// jshint ignore:line-与–的合作非常好;(function() { // jshint ignore:line
凯蒂·拉瓦利

4
不建议使用“忽略”选项,并且在Eclipse中使用JSHint集成功能0.9.9版会收到错误“错误选项”。有另一种方法可以做同样的事情吗?
MidnightJava

2
bad option: 'ignore'通过使用要忽略的行的特定选项来绕过。在我的情况下,我想忽略if (x == null)它,因为我希望它不仅等于null,而且与使JSHint静音的/* jshint eqnull:true */功能相同if
Nate

102

“邪恶”的答案对我不起作用。相反,我使用了JSHints docs页面上推荐的内容。如果您知道发出了警告,则可以将其关闭以获取代码块。例如,我正在使用一些不使用驼峰式案例函数的第三方代码,但是我的JSHint规则要求使用它,这会导致警告。为了使其安静,我写道:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */

15
以及如何找出警告编号?
2013年

3
当您运行jshint并最初收到错误消息时,将报告该数字。
tollmanz

5
哦对不起。我忘了发表评论,所以在检查文档后没有发表任何东西。不是,您必须添加--verbose到命令中以获得警告号。
2013年

9
或者,对此相关问题的答案建议检查messages.js。自从我使用WebStorm以来,我发现这很有帮助。
Michael Jess 2013年

3
所有警告,错误和信息编号都可以在这里找到:github.com/jshint/jshint/blob/master/src/messages.js
Anderson Arboleya,2016年

37

正如您在JSHint文档中所看到的,您可以更改每个函数每个文件的选项。在您的情况下,只需在文件中添加注释,甚至在使用eval以下功能的地方添加注释:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}

首先,这不适用于我的2.1.9版本,但在升级到2.1.11版本后
仍然有效-kangax
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.