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