Javascript 有没有自动修复简单JSLint问题的工具?

Javascript 有没有自动修复简单JSLint问题的工具?,javascript,jslint,Javascript,Jslint,我第一次在一个相当长的文件上运行JSLint,我有很多错误,比如期望“function”和“(”之间正好有一个空格或意外“”。我没有意识到这一点在我学习javascript的任何地方都很重要,现在手动修复这些相当简单的事情似乎令人沮丧。有些我可以通过简单的查找和替换来解决,但我想知道是否有在线工具可以自动为我进行这些更改他们似乎很直截了当 (我在我的文件中有/*jslint-white:false*/,我使用和自动格式开发(除非我必须纠正挂起的jQuery链接,因为它做得不对),我的代码仍然会有

我第一次在一个相当长的文件上运行JSLint,我有很多错误,比如
期望“function”和“(”之间正好有一个空格
意外“”
。我没有意识到这一点在我学习javascript的任何地方都很重要,现在手动修复这些相当简单的事情似乎令人沮丧。有些我可以通过简单的查找和替换来解决,但我想知道是否有在线工具可以自动为我进行这些更改他们似乎很直截了当

(我在我的文件中有
/*jslint-white:false*/
,我使用和自动格式开发(除非我必须纠正挂起的jQuery链接,因为它做得不对),我的代码仍然会有大量的事情,jslint抱怨这些事情,甚至出现意外的空格数。)

应该可以解决所有问题

格式化javascript并允许AST搜索和重写。类似于gofmt

在某些ide中,如netbeans,您可以使用
alt+shift+f
自动格式化代码


还有一些在线工具。

有很多工具可以用来做类似的事情。我使用这些工具至少可以修复缩进错误和函数部分周围的空格(我已经测试过了!)

当它检查不同于JSLint的东西时,
的fixjsstyle
模式可能会满足您的需要

它会自动修复代码,使之(更紧密地)和值得一读的内容相匹配


正如其他人所指出的,这是解决间距问题的方法。

如果您使用/拥有Visual Studio,它也会对JavaScript进行格式化。您可能需要从默认设置中配置格式化选项。

只需使用支持自定义代码格式化的IDE。例如NetBeans、WebStorm或Visual Studio。

有一个名为

在带有JSHint的“遗留模式”中:

var jshint = require('jshint').JSHINT
    var fixmyjs = require('fixmyjs')
    jshint(stringOfCode, objectOfOptions)
    var stringFixedCode = fixmyjs(jshint.data(), stringOfCode, objectOfOptions).run()
很好

还有一个。

Damon,可能会做任何你想做的事情,wrt无痛javascript代码格式化。它会将你的代码转换成AST,然后漂亮地打印回你的文件中,这样你就可以自动格式化。你甚至可以将它添加为预提交挂钩,或者在一个装满文件的文件夹中运行它(也很快!)这样,您的整个代码库将立即变得非常漂亮


为什么不点击jslint页面上的“容忍凌乱的空白”复选框按钮呢?实际上我已经试过了,但从2012年02月20日CET开始,它似乎没有对白色起作用:“
true
如果严格的空白规则应该被忽略。”所以,如果你想减少JSLint的抱怨,就把
white:false
改成
white:true
。哇..beautifier残酷地对待我的代码:是的,伙计。就是这样。就像JSLint/csslint会伤害你的感情一样。不要把它当成个人的,浏览器肯定不会。我想我对“美”的看法有点不同?哈哈…我也很困惑o为什么会这样做。@damon一开始就很难看,尽管=/否决了这一点,但它不会修复制表符,而不是空格、错误列中的大括号等。再次,只需空格betwin函数()parens没有修复我看了那个页面,我不确定如何安装/运行它;它似乎需要某种类型的PERL环境?你需要Python-mac的安装通过运行他们建议的行为我工作。你有什么操作系统?遗憾的是,闭包linter似乎没有改变
function(){}
->
函数(){}
。你可以使用正则表达式来清理它们-如果你需要帮助,请告诉我。但是,我非常惊讶的是,美化器对你不起作用-尝试运行代码的一个子集,看看是什么部分让它变得疯狂(看起来不应该是这样的)。美容师真的很奇怪,它把`}else if($(this).val()&&&$(''elementSelectionList li a[href=“=”elementListing+'”)).hasClass('logo'){$(''elementSel')变成了`}else if(!$(this).val()&&$('elementSelectionList li a[href=“=”elementListing+”).hasClass('logo'ogo')){$('){$('#elementSel`这很难阅读,但它基本上是在完成前截断行,并在下一行重复几个字符+剩余部分。在第199行之前不要开始。这听起来像个bug。尝试将代码分成两半(只要在合法的位置完成对半,解析明智),或者改为使用命令行工具进行美化。如果这不起作用,请提交一个bug。谢谢,这太棒了,这几乎很棒了–不幸的是--旧模式不再起作用,默认的格式化程序会删除所有的空行:您好,这里的作者,旧模式仍然有效,所有的测试都通过了。您有失败的测试用例吗?