verificar script lista etiquetas codigo basicas javascript syntax-error jslint jshint

lista - ¿Cómo puedo verificar el código JavaScript SOLAMENTE para detectar errores de sintaxis desde la línea de comandos?



lista de etiquetas javascript (6)

Aquí hay una respuesta para un escenario de integración continua.

1- Comprueba todos los archivos de JavaScript con la exclusión de carpeta, subcarpeta y características de archivo.

2- Salir si hay un 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;

Los programas de JavaScript se pueden revisar para ver si hay errores en IDEs o usar aplicaciones web en línea, pero estoy buscando una forma de detectar errores de sintaxis solo .

He probado JSLint y JSHint y he analizado sus opciones, pero no he podido encontrar una combinación que excluya las advertencias y solo muestre los errores de sintaxis .

¿Cómo verifico el código JavaScript para detectar errores de sintaxis solo desde la línea de comando?


Cualquier analizador de JavaScript debería hacer, la acorn mencionada por @cweise es agradable porque es rápida y tiene un interruptor de --silent .

También puede usar esvalidate del paquete npm esprima : 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


JSHint hace lo que quieres. http://www.jshint.com/

Puede configurar qué advertencias o errores mostrar.

Un ejemplo:

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


La solución es habilitar jshint''s --verbose opción, que muestra el error o el código de advertencia (por ejemplo, E020 para Expected ''}'' to match ''{'' o W110 para Mixed double and single quotes ), luego grep solo para los errores:

jshint --verbose test.js | grep -E E[0-9]+.$


Tenía el problema similar, pero también necesitaba validar los problemas específicos de IE8 y validar el código js en los archivos html, aspx, ascx y cshtml.

Creé una herramienta simple de consola de código abierto (basada en Microsoft.JScript.Compiler), tal vez pueda ayudarlo. JsParser.Cmd

Es muy fácil de usar y me ayuda a validar el código js en las pruebas de nunidad.


Yo uso acorn :

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

Instalar a través de: npm -g install acorn .