关于JSHint 2.5.0中的尾随空格我该怎么办?

时间:2014-05-20 18:22:53

标签: javascript jshint

根据this文档,尾随空格似乎已被删除。如何在不使用已被弃用的功能(如"white": true)的情况下强制执行空格检查?

3 个答案:

答案 0 :(得分:8)

正如其他答案所述,JSHint 2.5.0中已删除此功能,以及其他各种遗留功能,这些功能基本上只是原始JSLint分支中的剩余功能。

空白linting仍然是一个有价值的工具。当差异被无限的空白变化污染时,由于一些错误的文本编辑器设置,提交者忘记关闭,这可能会非常烦人。在我看来,现在最适合这项工作的工具是JSCS,它提供了各种风格选择的验证。

这种分离让JSHint分析代码本身的潜在问题,并让JSCS分析代码的呈现方式。我现在在大多数项目中都使用它们。用于防止尾随空格的JSCS规则是disallowTrailingWhitespace

答案 1 :(得分:2)

摘录如下:

  

如果你的配置或文件中有这些选项,JSHint不会出错,它只会忽略它们。

所以你仍然可以使用,但是如果你将选项设置为true

  

jshint 2.5.0

     

删除了以下选项:nomen,onevar,passfail,white,   gcl,smarttabs,尾随。除此之外,不再缩进   提供有关缩进级别的警告。你仍然可以使用它   设置标签宽度,但它仅用于中的字符位置   其他警告。如果你有这些选项,JSHint不会出错   配置或您的文件;它会完全忽略它们。

Jshint 2.5.0:https://github.com/jshint/jshint/releases/tag/2.5.0

Jshint 2.5.1:https://github.com/jshint/jshint/releases/tag/2.5.1

替代解决方案:

另一种解决方案是使用notepad++,每当您完成代码编辑时,您都可以使用以下内容:

Edit > Blank Operations > Trim Trailing Space

结果是这样的:

[SPACE]if (something) {[SPACE][SPACE]if (something) {

  

注意:[SPACE]只是一个例子(由空格替换)

您还可以配置notepad ++以在键入时用空格替换制表符,如下所示进行配置:

Settings > Preferences > Tab Settings并选择“普通”(或其他),当您按下版本中的标签时,标签将替换为4个空格。

这样你就不必担心这个更新“jshint”了,可以使用它而不用担心空白。

在生产代码中使用什么:

我建议您保留两个版本的代码,即“开发版”和“生产版”。

开发版本应该是整个原始代码,只有与项目合作的团队才能评论和解读,保持项目的好工具(如果是开源的话)将是https://github.com

生产版本应该压缩您的原始代码(没有注释和不必要的空格),这个工具将是: http://jscompress.com/

答案 2 :(得分:1)

我建议你使用multistr来捕捉它真正受伤的空白。

multistr
此选项禁止有关多行字符串的警告。多行字符串在JavaScript中可能是危险的,因为如果你不小心在转义字符()和新行之间放置了一个空格,那么所有地狱都会破裂。