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
.