我知道像JSLint这样的工具,但我不是在寻找风格的正确性,我需要一个可以验证JavaScript文件语法正确性的工具或工具(最好是在Linux上运行的,ubuntu包管理器中的加分)。
我只需要知道没有语法错误。
(完全公开,我们将把这个检查放在一个git提交钩子中,以确保语法错误的JavaScript不会被提交。因此,它可以是一个样式工具,但需要能够产生"YES语法良好“或"NO语法不好”的结果。)
发布于 2013-03-30 03:53:55
我相信您认为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-30 22:04:39
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
https://stackoverflow.com/questions/15708950
复制相似问题