用于查找基本Javascript语法错误的命令行工具?

时间:2010-12-04 21:40:16

标签: javascript debugging console

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

我通常在编写服务器端代码(例如Ruby或Perl)的同时编写我的Javascript代码。如果我可以部分测试我的客户端Javascript,就像我测试我的服务器端Ruby和Perl一样 - 在命令行上,通常来自emacs内部,这将节省我很多时间。我不希望在服务器上捕获运行时JavaScript错误,只是基本的东西,例如错误的变量名称或某个地方的额外括号或失控的字符串,在实际尝试执行代码之前可以找到的东西。

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

我看了一些像node.js这样的服务器端平台,但它们似乎都是为了编写和执行服务器端代码(所以我的代码中的所有客户端特定位都可能使它成为barf)。我还发现了一个用于javascript REPL的emacs模式,但它似乎并不是为了进行基本的编译检查 - 它基本上通过外部图形浏览器加载整个页面,让你跟它一起玩,这正是我想要的避免。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

由于我可能还没有说服您改变您的开发环境,让我们直接回答您的问题。为什么不使用SpiderMonkey引擎将一个命令行应用程序放在一起,以实现您所需要的功能?看起来easy enough to plug in。您甚至不必担心您可以保证获得运行时异常(您的环境中不会有DOM对象) - 您不必实际执行该脚本。只需致电JS_CompileScript并检查是否成功。 (当然,然后销毁JSScript对象。)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

Chrome browser有一个javascript调试器可以找到JavaScript错误:

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

enter image description here

这是在检查包含以下代码的JavaScript页面:

var error(){

}

它告诉我它有什么问题,意外的'('。

enter image description here

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

如果您点击错误旁边的链接,则会转到并突出显示包含错误/警告的行。