12

是否有相当于perl -c从命令对 JavaScript 进行语法检查的功能?鉴于我安装了 NodeJS?

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

4

3 回答 3

8

试试丑化。你可以通过 npm 安装它。

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

于 2012-06-15T13:36:30.680 回答
5

@瑞安

如果您想像我们在 perl(另一种脚本语言)中那样执行语法检查,您可以简单地使用。节点-c

例如,一个 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

希望有帮助。

于 2018-05-24T22:02:08.783 回答
2

经过进一步的研究,我很遗憾撤销了那次否决票。

nodejs --help

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

于 2015-03-03T05:36:24.597 回答