有没有办法抑制给定行的 JSHint 警告?
Posted
技术标签:
【中文标题】有没有办法抑制给定行的 JSHint 警告?【英文标题】:Is there a way to suppress JSHint warning for one given line? 【发布时间】:2012-10-10 06:27:59 【问题描述】:我的应用中有一个(单个)案例,使用了eval
,我想仅针对这种情况禁止 JSHint 警告。
有没有办法做到这一点?配置,魔术注释,...?
【问题讨论】:
【参考方案1】:是的,有办法。实际上是两个。在October 2013jshint 中添加了一种忽略这样的代码块的方法:
// 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 遇到过这个问题) 是否可以只忽略特定错误?例如。该特定行上的 maxlen 仍然检测到其他错误。 感谢// jshint ignore:line
-- 与 ;(function() // jshint ignore:line
配合得很好
“忽略”选项已弃用,并且在 Eclipse 中使用 0.9.9 版的 JSHint 集成功能时出现错误“错误选项”。有没有其他方法可以做同样的事情?
我通过使用特定的option 来绕过bad option: 'ignore'
我想忽略的行。在我的情况下,我想忽略 if (x == null)
,因为我希望它不仅仅是 null,并在与 if
相同的函数中使用 /* jshint eqnull:true */
来使 JSHint 静音。【参考方案2】:
正如您在documentation of JSHint 中看到的,您可以更改选项每个函数 或每个文件。在您的情况下,只需在您的文件中添加评论,或者在使用 eval
的函数中添加更多本地评论:
/*jshint evil:true */
function helloEval(str)
/*jshint evil:true */
eval(str);
【讨论】:
fwiw,这对我来说不适用于 2.1.9,但在升级到 2.1.11 后工作【参考方案3】:“邪恶”的答案对我不起作用。相反,我使用了 JSHints docs page 上推荐的内容。如果您知道引发的警告,则可以将其关闭以获取代码块。例如,我正在使用一些不使用驼峰函数的第三方代码,但我的 JSHint 规则需要它,这导致了警告。为了让它安静,我写道:
/*jshint -W106 */
save_state(id);
/*jshint +W106 */
【讨论】:
我该如何计算我的警告编号? 当你运行jshint最初得到错误时,会报数字。 哦,对不起。我忘了我留下了评论,所以在我检查了文档后没有发布任何东西。不是,您必须在命令中添加--verbose
才能获得警告编号。
另外,this related question 的答案建议检查messages.js。我发现这很有帮助,因为我使用了 WebStorm。
所有警告、错误和信息编号都可以在这里找到:github.com/jshint/jshint/blob/master/src/messages.js以上是关于有没有办法抑制给定行的 JSHint 警告?的主要内容,如果未能解决你的问题,请参考以下文章