【发布时间】:2012-10-10 06:27:59
【问题描述】:
我的应用中有一个(单个)案例,使用了eval,我想仅针对这种情况禁止 JSHint 警告。
有没有办法做到这一点?配置,魔术注释,...?
【问题讨论】:
标签: jshint
我的应用中有一个(单个)案例,使用了eval,我想仅针对这种情况禁止 JSHint 警告。
有没有办法做到这一点?配置,魔术注释,...?
【问题讨论】:
标签: jshint
是的,有办法。实际上是两个。在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 ignore:line -- 与 ;(function() { // jshint ignore:line 配合得很好
bad option: 'ignore' 我想忽略的行。在我的情况下,我想忽略 if (x == null),因为我希望它不仅仅是 null,并在与 if 相同的函数中使用 /* jshint eqnull:true */ 来使 JSHint 静音。
正如您在documentation of JSHint 中看到的,您可以更改选项每个函数 或每个文件。在您的情况下,只需在您的文件中添加评论,或者在使用 eval 的函数中添加更多本地评论:
/*jshint evil:true */
function helloEval(str) {
/*jshint evil:true */
eval(str);
}
【讨论】:
“邪恶”的答案对我不起作用。相反,我使用了 JSHints docs page 上推荐的内容。如果您知道引发的警告,则可以将其关闭以获取代码块。例如,我正在使用一些不使用驼峰函数的第三方代码,但我的 JSHint 规则需要它,这导致了警告。为了让它安静,我写道:
/*jshint -W106 */
save_state(id);
/*jshint +W106 */
【讨论】:
--verbose 才能获得警告编号。