Erste Weitere Informationen Fro m PhantomJS
Die nächste Version von PhantomJS (vermutlich wird es 1.9.8 sein, was auch immer kommt nach 1.9.7) ausgibt Fehler wie folgt aus:
SyntaxError: Parse error
http://localhost:9000/scripts/49e8b4f4.vendor.js:8
Also das ist etwas nützlicher als die aktuelle Nachricht .
Leider gibt es keine nächtlichen Builds für PhantomJS, daher müssen Sie zu diesem Zeitpunkt Ihre eigene Version des Masters kompilieren, wenn Sie dies versuchen möchten.
Debuggen minimierte Dateien
Wenn Sie mit einer verkleinerten Datei arbeiten, oft die Zeilennummer wird nicht sehr hilfreich sein, und das Debuggen oft die un-minimierte Datei sollten Sie die Parser-Fehler geben.
Um dies zu lösen, sobald Sie PhantomJS erhalten Sie den Namen der Datei zu geben, können Sie die online demo of Esprima verwenden können, eine tatsächliche Parse Ihrer JavaScript-Code zu erhalten:
http://esprima.org/demo/parse.html
Vom können Sie Geben Sie strategische Zeilenumbrüche ein, um den tatsächlichen Fehler zu isolieren.
Lint Werkzeuge sind Suboptimale für diesen Anwendungsfall
Ein lint Tool wie JSLint oder jshint sind meinungs als ein echter Parser, also, wenn Sie für einen ganz bestimmten Syntax-Fehler suchen, würde ich empfehlen, einen echten Parser zu verwenden, da nur die Gültigkeit des Codes überprüft wird, und nicht die Richtlinien für das Styling. Ich unterstelle nicht, dass Flusenwerkzeuge keinen Wert haben, nur dass sie für die Lösung dieser Art von Problemen nicht so hilfreich sind.
Dies ist eine schnelle und clevere Möglichkeit, lokale Syntaxprüfung für js-Dateien auszuführen. Ich finde das viel schneller als die Online-Tools, und es ist nicht meinunglich. der Nachteil ist Knoten, aber ich vermute, dass die meisten Phantomjs Entwickler Knoten installiert haben. – danmux
Was passiert, wenn ein Knoten auf ein globales Fenster trifft? Oder wenn Phantom, das läuft .. Chrom? ist eine andere Version als Node? Es ist ok für einige grundlegende Fälle, die ich –
mein Rezept auf allen makefiles denke: 'find src/js/-name \ * js -exec knoten \ {\} \; 2> & 1 | grep -B 5 SyntaxError || exit 0 && exit 1; 'es wird fehlschlagen Machen Sie eine Regel, wenn es einen Syntaxfehler gibt und zeigen Sie die Zeile an, wo es passiert. – gcb