Comment puis-je vérifier le code JavaScript pour les erreurs de syntaxe seulement à partir de la ligne de commande?

les programmes JavaScript peuvent être vérifiés pour les erreurs dans IDEs ou en utilisant applications Web en ligne mais je cherche un moyen de détecter les erreurs de syntaxe seul .

j'ai essayé JSLint et JSHint et j'ai regardé leurs options mais je n'ai pas été capable de trouver une combinaison qui exclurait les avertissements et montre juste les erreurs de syntaxe .

Comment puis-je vérifier le code JavaScript pour les erreurs de syntaxe seule à partir de la ligne de commande?

36
demandé sur Community 2014-02-18 18:00:40

6 réponses

j'utilise acorn :

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

$ acorn --silent tests/files/js-ok.js; echo $?
0

Installer via: npm -g install acorn .

25
répondu cweiske 2017-07-24 13:48:57

la solution est d'activer l'option --verbose de jshint, qui affiche le code d'erreur ou d'avertissement (par exemple E020 pour Expected '}' to match '{' ou W110 pour Mixed double and single quotes ), puis grep pour les erreurs seulement:

jshint --verbose test.js | grep -E E[0-9]+.$
16
répondu Dan Dascalescu 2014-04-02 22:11:11

JSHint fait ce que vous voulez. http://www.jshint.com /

vous pouvez configurer quels avertissements ou erreurs afficher.

un exemple:

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

1 error
5
répondu idmean 2014-02-18 14:08:21

tout analyseur JavaScript devrait faire", acorn mentionné par @cweise est agréable parce qu'il est rapide et dispose d'un commutateur --silent .

vous pouvez également utiliser esvalidate du npm esprima paquet: 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
3
répondu ernesto 2015-07-30 12:28:42

j'avais le MÊME PROBLÈME, MAIS j'avais aussi besoin de valider des problèmes spécifiques à IE8 et de valider le code js dans les fichiers html, aspx, ascx et cshtml.

j'ai créé simple open source console tool (basé sur Microsoft.JScript.Compilateur), peut-être qu'il peut vous aider. JsParser.Cmd

il est très facile à utiliser et il m'aide à valider le code js dans les tests nunit.

0
répondu Alex H 2014-11-12 05:37:16

Voici une réponse pour un scénario D'Intégration Continue.

1-vérifie tous les fichiers JavaScript avec exclure le dossier, le sous-dossier et les caractéristiques du fichier.

2 - Quitter s'il y a une erreur.

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
répondu motto 2017-06-30 22:33:52