St *_*iss 9 javascript indentation jshint
我使用jshint启用了indent enforcing选项并设置为4,并希望对代码库中的大多数文件保持这种方式.
但是在一个特定的文件中,我想禁用此检查.
我尝试在顶部添加jshint注释但这不起作用:
/* jshint indent: false */
Run Code Online (Sandbox Code Playgroud)
这太糟糕了,因为这种语法适用于其他选项.例如,我可以使用以下命令禁用camelcase enforcing选项:
/* jshint camelcase: false */
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
一些答案表明缩进会自动启用白色选项,但我尝试了以下操作并且它也不起作用:
/* jshint white: false */
Run Code Online (Sandbox Code Playgroud)
目前这是不可能的。indentJSHint按如下方式验证该选项的值:
if (typeof val !== "number" || !isFinite(val) || val <= 0 || Math.floor(val) !== val) {
error("E032", nt, g[1].trim());
return;
}
Run Code Online (Sandbox Code Playgroud)
正如您在问题的评论中注意到的那样,如果该值不是大于 0 的整数,则会引发错误。不过,它实际上并没有对该整数设置最大限制。
根据您运行 JSHint 的方式,可能会覆盖不关心缩进的文件的默认配置。例如,使用JSHint Grunt 任务,您可以执行以下操作:
grunt.initConfig({
jshint: {
options: {
/* Don't set indent here */
},
uses_defaults: ["somefile.js"],
with_overrides: {
options: {
indent: 4
},
files: {
src: ["someotherfile.js"]
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
更新
我已经打开了一个拉取请求,其中包含针对此问题的建议修复方案,因此请密切关注,我们将了解 JSHint 团队是否想要添加此功能。