如何仅从命令行检查JavaScript代码的语法错误?

Dan*_*scu 41 javascript jslint syntax-error jshint

可以在IDE中使用JavaScript程序或使用在线Web应用程序检查JavaScript程序,但我正在寻找一种单独检测语法错误的方法.

我已经尝试过JSLint和JSHint并查看了他们的选项,但我找不到排除警告的组合,只显示语法错误.

如何从命令行检查JavaScript代码的语法错误

cwe*_*ske 28

我用acorn:

$ acorn --silent tests/files/js-error.js; echo $?
Unexpected token (1:14)
1

$ acorn --silent tests/files/js-ok.js; echo $?
0
Run Code Online (Sandbox Code Playgroud)

通过安装:npm -g install acorn.


Dan*_*scu 18

解决方案是启用jshint的--verbose选项,它显示错误或警告代码(例如E020for Expected '}' to match '{'W110for Mixed double and single quotes),然后grep仅用于错误:

jshint --verbose test.js | grep -E E[0-9]+.$
Run Code Online (Sandbox Code Playgroud)

  • 如果有太多警告和错误,但最终会收到"太多错误,退出"消息.你需要设置一个配置文件选项,如maxerr:10000来避免这种情况,这是不理想的. (2认同)

idm*_*ean 5

JSHint做你想要的.http://www.jshint.com/

您可以配置要显示的警告或错误.

一个例子:

$ jshint myfile.js
myfile.js: line 10, col 39, Octal literals are not allowed in strict mode.

1 error
Run Code Online (Sandbox Code Playgroud)

  • 目前无法禁用 jshint 中的所有警告。您必须在配置文件中一一执行:/ (2认同)