使用命令检查JavaScript的语法

时间:2012-06-14 15:14:49

标签: javascript node.js

是否有来自命令的JavaScript的perl -c语法检查?鉴于我安装了NodeJS?

不认为JSLint不是真正的解析器。我认为YUI压缩器是可能的,但我不想在生产机器上安装Java,所以我正在检查Node.JS是否已经提供了这种语法检查机制。

3 个答案:

答案 0 :(得分:8)

尝试 uglify 。你可以通过npm安装它。

编辑:包名已更改。它是 uglify-js

答案 1 :(得分:3)

@Ryan

如果你想像perl(另一种脚本语言)那样执行语法检查,你可以简单地使用。 node -c

e.g。一个js文件作为test.js有 -

let x = 30
if ( x == 30 ) {
  console.log("hello");
else {
  console.log( "world");
}

现在输入node -c test.js 它会告诉你

test.js:5
 else {
 ^^^^
SyntaxError: Unexpected token else
    at startup (bootstrap_node.js:144:11)
    at bootstrap_node.js:509:3

现在将语法问题修复为

let x = 30
if ( x == 30 ) {
  console.log("hello");
} else {
  console.log( "world");
}

检查语法 - node -c test.js将不显示语法错误!!

注意 - 我们甚至可以使用它来检查目录中所有文件的语法。 - node -c *.js

希望有所帮助。

答案 2 :(得分:2)

经过进一步研究后,我很遗憾没有取消投票。

nodejs --help

解释-p开关:它评估提供的代码并打印结果。所以使用nodejs -p< /path/to/file.js将是一种灾难性的方法来检查服务器上node.js代码的有效性。一种可能的解决方案是在this SO线程中指示的解决方案。有一点不太好 - 它报告的语法错误消息并不是非常有用。例如,它告诉你出了问题,但没有告诉你哪里它是错误的。