Javascript 代码样式执行器或检查器

Posted

技术标签:

【中文标题】Javascript 代码样式执行器或检查器【英文标题】:Javascript code style enforcer or checker 【发布时间】:2013-04-08 12:24:24 【问题描述】:

我正在开发一个使用特定 javascript 样式指南的项目。例如,if/else 语句如下所示:

if( condition )
  // Bla bla

else 
  // Another bla bla

我正在寻找一种工具,它可以让我根据特定的样式指南检查文件的语法。 JSHint/JSLint 不关注样式,Closure Linter 不可自定义,Uncrustify 会在没有警告的情况下重新格式化文件(并且不正式支持 Javascript)。

我能用这个程序得到的最好的输出是来自 Closure Linter 但有自定义规则的输出。 this similar question 的答案都是错误的。

这样的工具存在吗?

【问题讨论】:

我认为 JSLint 主要是关于风格,虽然不是你的例子中显示的风格 【参考方案1】:

如果您仍在寻找答案,可以尝试一个名为 jscs 的项目。 您可以自定义代码在几乎任何方面的外观,以及您尚未开发的那些(例如函数参数间距)。

一切都可以通过.jscsrc 文件进行定制;以下是我使用它的一个项目的示例:


    "requireCurlyBraces":                   [ "if", "else", "for", "while", "do", "switch" ],
    "requireSpaceAfterKeywords":            [ "if", "else", "for", "while", "do", "switch" ],
    "disallowSpaceAfterKeywords":           [],
    "requireSpacesInsideObjectBrackets":    "all",
    "disallowSpaceAfterObjectKeys":         true,
    "disallowImplicitTypeConversion":       [],
    "disallowKeywords":                     [ "with" ],
    // ...

如果您使用 Grunt,请随意尝试我自己的 jscs 任务 - grunt-jscs-checker。

顺便说一句,the jQuery teamis using jscs :)

【讨论】:

看看我所做的编辑。也许这是您关心的事情! 我们可以对 CoffeeScript 文件使用 jscs 吗? @ankakusu 不。它们是完全不同的语言,但谁知道呢,也许 forking jscs...?【参考方案2】:

听起来你真的很喜欢JavaScript beautifier。可以通过版本控制支持的“在文件上运行它并查看它们是否更改”来完成检查。

【讨论】:

【参考方案3】:

没有符合您需求的工具。 JSLint 应用了 Crockford 建议(并强制执行)的样式规则,JSHint 更加灵活,因为您可以选择更适合您的编码样式的规则,但不够灵活,无法强制执行任何类型的样式。

通常,您可以配置您的编辑器,以便它可以帮助您以您喜欢的代码的方式缩进和换行。并使用 linter 来注意重要的地方(一些空白规则,如何使用括号……)。 linter 的作用更多的是防止您的语言无法阻止您犯的愚蠢错误。

【讨论】:

以上是关于Javascript 代码样式执行器或检查器的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的代码没有执行正确的答案/回文检查器 javascript

如何在 Javascript 或 Apex 中检查受限文件

CSS / JavaScript / hacking:检测:链接上的访问样式*无需*直接检查或比我快

前端—— JavaScript基础操作:if语句for循环while循环for...infor...of异常处理函数事件JS选择器JS操作页面样式

如何在 Chrome 的检查器中添加/插入之前或之后的伪元素?

浏览器渲染页面