How can I check JavaScript code for syntax errors ONLY from the command line?

后端 未结 5 1819
栀梦
栀梦 2021-02-01 13:40

JavaScript programs can be checked for errors in IDEs or using online web apps but I\'m looking for a way to detect syntax errors alone.

I\'ve tried JSLint and

相关标签:
5条回答
  • 2021-02-01 13:48

    I use acorn:

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

    Install via: npm -g install acorn.

    0 讨论(0)
  • 2021-02-01 13:55

    The solution is to enable jshint's --verbose option, which shows the error or warning code (e.g. E020 for Expected '}' to match '{' or W110 for Mixed double and single quotes), then grep for errors only:

    jshint --verbose test.js | grep -E E[0-9]+.$
    
    0 讨论(0)
  • 2021-02-01 13:58

    JSHint does what you want. http://www.jshint.com/

    You can configure which warnings or errors to show.

    An example:

    $ jshint myfile.js
    myfile.js: line 10, col 39, Octal literals are not allowed in strict mode.
    
    1 error
    
    0 讨论(0)
  • 2021-02-01 13:59

    Here is an answer for a Continuous Integration scenario.

    1- Checks all the JavaScript files with exclude folder, subfolder and file features.

    2- Exit if there is an error.

    esvalidate --version || npm install -g esprima;
    find ./ -not \( -path ./exclude_folder_1 -prune \) -not \( -path ./exclude/sub_folder -prune \) -not \( -path ./exclude/sub_folder_2 -prune \) ! -name exclude_specified_file.js  -name \*.js -exec esvalidate '{}' \; | grep -v "No syntax errors detected" && echo "Javascript Syntax error(s) detected" && exit 1;
    
    0 讨论(0)
  • 2021-02-01 14:02

    Any JavaScript parser should do, acorn mentioned by @cweise is nice because it is fast and has a --silent switch.

    You could also use esvalidate from the npm esprima package: http://ariya.ofilabs.com/2012/10/javascript-validator-with-esprima.html

    $ npm install -g esprima
    $ esvalidate js-file-with-errors.js 
    js-file-with-errors.js:1: Invalid left-hand side in assignment
    
    0 讨论(0)
提交回复
热议问题