4

我知道像 JSLint 这样的工具,但我不是在寻找样式正确性,我需要一个可以验证语法正确性的工具或实用程序(最好是在 Linux 上运行的,在 ubuntu 包管理器中的奖励积分) JavaScript 文件。

我只需要知道没有语法错误。

(完全披露,将把这个检查放在一个 git commit 钩子中,以确保不会提交语法不正确的 JavaScript。所以它可以是一个样式工具,但需要能够产生“YES SYNTAX GOOD”,或者“没有语法错误”结果。)

4

2 回答 2

5

我相信您认为 JSLint 不会验证语法,但我认为它完全符合您的要求。现在,为了我的奖励积分!:-) 这是一个快速示例,尽管使用了 JSLint,但它应该可以做任何你想做的事情。

sudo apt-get install spidermonkey-bin
wget http://www.jslint.com/fulljslint.js
mv fulljslint.js /home/admin/bin/js

然后创建/home/admin/bin/js/runjslint.js:

load('/home/admin/bin/js/fulljslint.js');
var body = arguments[0];
var result = JSLINT(body);
if (result) {
 print('YES SYNTAX GOOD');
} else {
 print('NO SYNTAX BAD');
}
print(JSLINT.report());

该文件在使用 Spidermonkey 运行时,将检查作为命令行参数传递的 Javascript 数据的语法。最后你可能不想要那个报告,但认为它可能值得你玩。

于 2013-03-29T19:53:54.783 回答
0

acorn.js是一个非常小的 javascript 解析器。遇到问题时会引发 javascript 错误。

下载橡子

curl https://raw.github.com/marijnh/acorn/master/acorn.js > acorn.js

使用以下内容创建一个名为 acornIt.js 的运行器(需要安装节点)

var acorn = require('./acorn');
var fs = require('fs');
var fileName = process.argv[2];
var contents = fs.readFileSync(fileName);

try {
   acorn.parse(contents);
   console.log("YES SYNTAX GOOD");
} catch (e) {
   console.log("NO SYNTAX BAD");
   console.log(e); // See where the error occured
}

并运行它

node acornIt.js someTestFile.js
于 2013-03-30T14:04:39.370 回答