Obtenir plus d'informations de PhantomJS
La prochaine version de PhantomJS (vraisemblablement la 1.9.8, qui suivra la 1.9.7) produira des erreurs comme celle-ci :
SyntaxError: Parse error
http://localhost:9000/scripts/49e8b4f4.vendor.js:8
C'est donc un peu plus utile que le message actuel.
Malheureusement, il n'y a pas de nightly builds pour PhantomJS, donc pour le moment vous devrez compiler votre propre version de master si vous voulez essayer.
Débogage des fichiers réduits
Si vous travaillez avec un fichier minifié, le numéro de ligne ne sera souvent pas très utile, et souvent le débogage du fichier non minifié ne vous donnera pas l'erreur d'analyse.
Pour résoudre ce problème, une fois que vous avez obtenu que phantomjs vous donne le nom du fichier, vous pouvez utiliser la fonction Démonstration en ligne d'Esprima pour obtenir une analyse réelle de votre code JavaScript :
http://esprima.org/demo/parse.html
À partir de là, vous pouvez saisir des sauts de ligne stratégiques pour isoler l'erreur réelle.
Les outils Lint sont sous-optimaux pour ce cas d'utilisation.
Un outil d'extraction comme jslint ou jshint est plus subjectif qu'un véritable analyseur syntaxique, donc si vous recherchez une erreur de syntaxe très spécifique, je vous recommanderais d'utiliser un véritable analyseur syntaxique, car il ne vérifiera que la validité du code, et non les directives stylistiques subjectives. Je ne veux pas dire que les outils lint n'ont pas de valeur, mais simplement qu'ils ne seront pas aussi utiles pour résoudre ce type de problème.
0 votes
FYI : Si vous utilisez la syntaxe de la grande flèche pour les lambdas (i.e. => ) votre script échouera et vous n'obtiendrez aucune erreur d'analyseur syntaxique en retour.
0 votes
Cette question reçoit des votes/réponses/commentaires et elle date d'une époque où l'on ne rêvait même pas encore de la syntaxe lambda en javascript ! ...les gens utilisent simplement firefox headless ! phantomjs est abandonné (et chrome/ium est mort pour moi)