【问题标题】:Command line tool for finding basic Javascript syntax errors?用于查找基本 Javascript 语法错误的命令行工具?
【发布时间】:2011-05-20 08:25:06
【问题描述】:

是否有任何命令行 Linux 工具可以捕获我的 Javascript 文件中的基本语法错误和编译时错误,即使所述 Javascript 文件是为在 Web 浏览器中使用而编写的?

我通常在编写 Javascript 代码的同时用 Ruby 或 Perl 编写服务器端代码。如果我可以像测试服务器端 Ruby 和 Perl 一样,在命令行上(通常是在 emacs 中)部分测试我的客户端 Javascript,那将节省大量时间。我不希望在服务器上捕获运行时 JavaScript 错误,只是一些基本的东西,比如输入错误的变量名或某处的额外括号或失控的字符串,在实际尝试执行代码之前可以找到的东西。

我现在测试/调试 Javascript 的工作通常是“在浏览器中访问 Web 应用程序;检查 Firebug 或其他控制台;返回 emacs 以修复错误;重复。”对于更复杂类型的错误(例如涉及用户和网络交互),这样做当然是不可避免的,但可以在命令行上更快地捕获和处理各种语法错误,而无需加载浏览器。

我已经研究了一些服务器端平台,例如 node.js,但它们似乎都适合编写和执行服务器端代码(所以我的代码中的所有客户端特定位可能都会让它变得很糟糕)。我还找到了一个用于 javascript REPL 的 emacs 模式,但它似乎并不仅仅用于进行基本的编译检查 - 它基本上是通过外部图形浏览器加载整个页面并让你使用它,这正是我想要的避免。

【问题讨论】:

    标签: javascript debugging console


    【解决方案1】:

    像 YUICompressor 这样的东西也可以有效地进行语法检查。

    【讨论】:

      【解决方案2】:

      这不是您问题的直接答案,因为它是一个 GUI 工具,但我是 Aptana 的忠实粉丝。它使用 SpiderMonkey 在后台编译您的代码,并在您键入时为您提供语法错误的红色波浪线。 (它对 HTML 也有同样的作用。)它也试图为你提供 JS 的智能感知,但它是命中注定的。当它工作时很好。

      由于我可能没有说服您更改开发环境,所以让我们直接回答您的问题。为什么不使用SpiderMonkey 引擎来组合一个命令行应用程序来满足您的需求?它看起来easy enough to plug in。您甚至不必担心一定会得到运行时异常(您的环境中不会有 DOM 对象)这一事实——您不必实际执行脚本。只需致电JS_CompileScript 并检查是否成功。 (当然,然后销毁JSScript 对象。)

      或者,如果你很懒,你可以试试Rhino Shell,这是一个执行 JavaScript 的命令行 Java 工具。

      【讨论】:

        【解决方案3】:

        我发现 JSHint,+ 它的 vim 插件非常有用。 vim 的轻量级并且仍然能够跟踪 javascript 的语法错误。 JSHint 也可以用作命令行工具。

        https://github.com/walm/jshint.vim

        【讨论】:

          【解决方案4】:

          带有 chrome 控制台的 Javascript 调试器:

          Chrome browser 有一个 javascript 调试器可以发现 JavaScript 错误:

          在 Chrome 中点击工具 -> JavaScript 控制台:

          这是使用以下代码检查 JavaScript 页面:

          var error(){
          
          }
          

          它告诉我它出了什么问题,出乎意料的'('。

          告诉我我无法在我的 javascript 文件的第 14 行定义这样的函数。

          如果您单击错误旁边的链接,它将带您转到并突出显示有错误/警告的行。

          【讨论】:

            【解决方案5】:

            我为此写了quick-lint-js。它指出语法错误等。

            quick-lint-js 与多个代码编辑器集成,例如 Vim 和 Visual Studio Code。如果您愿意,它还具有 UNIX 风格的命令行实用程序。

            【讨论】:

              猜你喜欢
              • 2016-09-18
              • 1970-01-01
              • 2014-03-18
              • 1970-01-01
              • 2019-02-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-08-19
              相关资源
              最近更新 更多