我知道像 JSLint 这样的工具,但我不是在寻找样式正确性,我需要一个可以验证语法正确性的工具或实用程序(最好是在 Linux 上运行的,在 ubuntu 包管理器中的奖励积分) JavaScript 文件。
我只需要知道没有语法错误。
(完全披露,将把这个检查放在一个 git commit 钩子中,以确保不会提交语法不正确的 JavaScript。所以它可以是一个样式工具,但需要能够产生“YES SYNTAX GOOD”,或者“没有语法错误”结果。)
我知道像 JSLint 这样的工具,但我不是在寻找样式正确性,我需要一个可以验证语法正确性的工具或实用程序(最好是在 Linux 上运行的,在 ubuntu 包管理器中的奖励积分) JavaScript 文件。
我只需要知道没有语法错误。
(完全披露,将把这个检查放在一个 git commit 钩子中,以确保不会提交语法不正确的 JavaScript。所以它可以是一个样式工具,但需要能够产生“YES SYNTAX GOOD”,或者“没有语法错误”结果。)
我相信您认为 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 数据的语法。最后你可能不想要那个报告,但认为它可能值得你玩。
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