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
CSS / JavaScript / hacking:检测:链接上的访问样式*无需*直接检查或比我快
前端—— JavaScript基础操作:if语句for循环while循环for...infor...of异常处理函数事件JS选择器JS操作页面样式