抱歉,我打算在发布答案之前先尝试一下,但赏金快到了。;^)
这个答案声称有一种方法可以编写自己的 JSHint 模块。
让我们假设它像宣传的那样工作并且已经被合并回来。
这里有很好的说明,但请注意那些在“jshint-next”网站上。
该页面的示例代码:
// This module errs on any identifier that doesn't starts with 'kitty'.
function myModule(linter) {
linter.on("Identifier", function (ident) {
if (ident.name && ident.name.slice(0, 5) !== "kitty")
linter.report.addError("C001", "More cats please.");
});
}
以下是关于如何设置 linter 的初始部分:
var Linter = require("jshint").Linter;
var code = "<your beautiful JavaScript code here>";
// Create a new instance of Linter.
var linter = new Linter(code);
// Now you can teach JSHint about your predefined variables.
// Note that default JavaScript identifiers are already there.
linter.addGlobals({
jQuery: false,
MyPlugin: true
});
// If you have any JSHint extensions, you can attach them
// to the current instance.
linter.addModule(myModule);
// Finally, parse your code.
linter.parse();
我意识到这是非常通用的(您仍然需要研究linter.on
其他选项Identifier
;例如,还有一个String
),但它看起来很有希望。同样,您可以了解如何使用上述说明进行集成。看起来这是style.js
.
我还没有尝试过。只是没时间在家;道歉。
是否有特定原因 torazaburo 的“Just grep
it”答案不起作用?您是否需要将其作为代码质量工作流程的一部分?如果是这样,这种“编写你自己的模块”似乎是要走的路。
如果你愿意的话,也有很明显的方法可以破解 JSLint,但我不确定 Crockford 会不会欣赏。;^)