【问题标题】:Any tool to automatically fix simple JSLint issues? [closed]有什么工具可以自动修复简单的 JSLint 问题? [关闭]
【发布时间】:2011-11-25 17:18:37
【问题描述】:

我第一次在一个相当长的文件上运行 JSLint,我遇到了很多错误,例如 expected exactly 1 space between "function" and "("unexpected ' '。在我学习 javascript 的任何地方,我都没有意识到这很重要,现在手动修复这些相当简单的事情似乎令人沮丧。有些我可以通过简单的查找和替换来解决,但我想知道是否有任何在线工具可以自动为我进行这些更改,因为它们似乎非常简单?

(我的文件中有/*jslint white: false */,我在Netbeans 中开发并自动格式化(除非我必须更正悬挂的jQuery 链接,因为它不正确),我的代码仍然以jslint 抱怨的大量事情,就意外数量的空格而言。)

【问题讨论】:

  • 为什么不点击jslint页面上的“容忍混乱空白”复选框按钮?
  • 我确实试过了,好像没有效果
  • 自欧洲中部时间 2012 年 2 月 20 日从 JSLint Instructionswhite:“true 如果应该忽略严格的空格规则。”因此,如果您想减少 JSLint 的投诉,请将 white: false 更改为 white: true

标签: javascript jslint


【解决方案1】:

虽然它检查的内容与 JSLint 不同,但 Google closure linterfixjsstyle 模式可能会执行您想要的操作。

它会自动修复代码以(更紧密地)适合 Google Javascript style guide,这非常值得一读。

正如其他人指出的那样,Javascript beautifier 是解决间距问题的方法。

【讨论】:

  • 我查看了该页面,但不确定如何安装/运行它;它似乎需要某种类型的 PERL 环境?
  • 你需要 Python - mac 的安装通过运行他们建议的行对我有用。你有什么操作系统?
  • 可悲的是,看起来闭包 linter 没有改变 function() {} -> function () {}。您可以使用正则表达式来清理它们 - 如果您需要帮助,请告诉我。但是,我很惊讶美化器对你不起作用 - 尝试通过它运行你的代码子集,找出是什么部分让它变得疯狂(它不应该看起来像那样)。
  • 美化器真的很奇怪,它变成了` } else if ($(this).val() && $('#elementSelectionList li a[href="#' + elementListing + '"]' ) .hasClass('logo')) { $('#elementSel` into ` } else if (!$(this).val() && $('#elementSelectionList li a[href="#' + elementListing + '" ]').hasClass('logo' ogo ')) { $(') {$('#elementSel` 这很难阅读,但它基本上是在它们完成之前切断线条并重复几个字符+其余部分下一行。直到第 199 行才开始
  • 听起来像一个错误。尝试将代码美化为两半(只要减半是在合法的地方进行的,解析方式),或者改用命令行工具美化。如果这不起作用,请提交错误here
【解决方案2】:

有一个名为 fixmyjs 的 npm 模块。

在“传统模式”下使用 JSHint:

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

效果很好!

还有一个Sublime Text 2/3 Package

【讨论】:

  • 谢谢你,这太棒了
  • 呃,这简直太棒了——不幸的是 --legacy 模式不再有效,默认格式化程序会删除所有空行:github.com/jshint/fixmyjs/issues/88
  • 您好,作者在这里,传统模式仍然有效,所有测试都通过了。你有失败的测试用例吗?
【解决方案3】:

http://jsbeautifier.org/ 应该可以解决你所有的问题

【讨论】:

  • 哇.. 美化器使我的代码变得残酷:i.imgur.com/9H5Vb.jpg
  • 是的,伙计。就是这样。就像 jslint/csslint 会伤害你的感情一样。不要把它看成个人的,浏览器肯定不会。
  • 我想我对“美”的看法有点不同?大声笑..我只是对它为什么会那样做感到困惑。
  • @damon 虽然一开始很丑 =/
  • 投票否决,它不会修复制表符而不是空格,错误列中的大括号等 PS。再次向上,只是函数()和括号之间的空间没有固定
【解决方案4】:

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

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

网上也有。 http://jsbeautifier.org/

【讨论】:

    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

      有很多工具可以做这样的事情。我使用JS Beautifier,它至少可以修复缩进错误以及空格周围的功能部分(我已经测试过了,耶!)

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          Here is a video from ReactConf that explains it pretty well

          【讨论】:

            猜你喜欢
            • 2016-10-11
            • 1970-01-01
            • 1970-01-01
            • 2016-10-20
            • 2018-01-01
            • 2021-10-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多