抑制 JSHint / JSLint 或替代服务中的“混合空格和制表符”警告?

Posted

技术标签:

【中文标题】抑制 JSHint / JSLint 或替代服务中的“混合空格和制表符”警告?【英文标题】:Suppress "mixed spaces and tabs" warning in JSHint / JSLint or alternative service? 【发布时间】:2012-05-04 09:31:56 【问题描述】:

JSHint 和 JSLint 是很棒的工具。

但是,“混合空格和制表符”警告在报告中占主导地位。有没有办法抑制这些警告,或者是否有类似的服务可以抑制空白警告?

【问题讨论】:

我最终解决了这个问题,我编写了一个简单的 JS 脚本来调整代码中的空白,然后将其粘贴到 jshint。 有个窍门,去掉所有的空白(\t,\n,\0,空格)。重建它。它应该可以工作。 【参考方案1】:

无法使用标志和JSHint maintainer doesn't want to add a flag for this 关闭此警告。

但是,可以根据their number 关闭警告。在这种情况下,你会写:

/* jshint -W099 */

如果您使用的是 JSHint 配置文件,您也可以在此处指定:


    "-W099": true, // allowed mixed tabs and spaces

或者,有一个custom reporter available 可以关闭此警告。

【讨论】:

是的!感谢您实际回答问题! 我想在 Eclipse 的 JSHint 插件中使用这个选项,但是当我在插件选项框中粘贴 "-W099": true 时它不起作用(显示构建错误说“缺少:属性 id 之后” )。尝试不带引号,然后显示“错误选项:-W099”。你知道我应该如何配置它吗? @MisterSmith 这是一个相对较新的 JSHint 功能,您使用的是最新版本吗? 我正在使用this plugin。根据文档,它使用 JSHint r12。 r12 8 个月大,不包括这个。【参考方案2】:

2014 年的答案:升级 jshint 正如@RobW 前面提到的,jshint no longer complains about mixed spaces and tabs。我已经通过升级到 jshint@2.5.10 并重新整理我的文档对此进行了测试,该文档不再抱怨(我一直使用制表符缩进,但在 SublimeText 中注释掉行会触发此警告)。

sudo npm update -g jshint

【讨论】:

我有最新的,但它确实抱怨【参考方案3】:
/*jshint smarttabs:true */

请参阅“放松选项”下的 smarttabs。 http://www.jshint.com/docs/options/

当后者仅用于对齐时,此选项会抑制有关混合制表符和空格的警告。该技术称为SmartTabs。

【讨论】:

你太棒了。但你和你的 78.3K 点已经知道了。 不,我们也尝试过(从阅读文档中看到)。我们应该把这一行放在代码块的顶部,对吧?没有别的吗? 我认为 JSLint 的“容忍混乱的空白”选项对你有用。但是,您会从 JSLint 中得到一些更加固执己见的警告/错误。 我最终解决了这个问题,我编写了一个简单的 JS 脚本来调整代码中的空白,然后将其粘贴到 jshint。谢谢! smarttabs 选项已从 jshint 中删除:github.com/jshint/jshint/commit/…

以上是关于抑制 JSHint / JSLint 或替代服务中的“混合空格和制表符”警告?的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 JSLint / JSHint 已经定义了哪些全局变量

syntastic - 显示 jslint 和 jshint 错误

有没有办法抑制给定行的 JSHint 警告?

如何正确解决这个 JSHint “可能的严格违规”

jslint:如何抑制'预期的'Object.create(null)',而是看到'新对象'。警告?

在构建 Twitter Bootstrap 时让 jshint 忽略某些文件