2016-03-24 7 views
1

Unser Quellcode verwendet den Abschlusscompiler, um Javascript zu minimieren. Kürzlich wurde ich beauftragt, es auf die neueste Version zu aktualisieren. Wenn ich das tat, würde die JavaScript-Komponente nicht mehr richtig kompilieren. Die Version, die wir zuvor verwendet haben, war v20131014. Ich probierte das letzte (ab Februar 2016) sowie die 3 oder 4 Versionen davor, aber alle mit den gleichen Problemen.Closure Compiler-Befehlszeile scheint nicht mit der neuesten Version zu funktionieren

Die Art, wie wir die Compiler verwenden ist von der Kommandozeile, in einer Groovy-Datei, die eine Reihe von transpiling von JavaScript tut:

... 
    def command = "java -jar $compiler --js $orderedDependencies --js_output_file $minFilename --create_source_map $mapFilename --compilation_level WHITESPACE_ONLY --source_map_format=V3 " 
    command.execute(null as List, outputDir).waitFor() 
    .... 

Wenn ich dieses Skript auf der Ausführung hängt. Wenn ich den Befehl in der Befehlszeile ausführe (mit tatsächlichen Werten, die die oben gezeigten Variablen ersetzen), funktioniert es problemlos. Es gibt keine Protokollnachrichten von dem Build, die angeben, was falsch ist. und Version v20131014 funktioniert problemlos.

Irgendwelche Ideen, die sich zwischen 2013 und 2016 geändert haben könnten, die dieses Problem verursachen könnten?

+0

Was in 3 Jahren verändert? In diesem Zeitraum sind mehrere tausend Commits passiert. –

+0

:). Ja. Jetzt ist der schmerzhafte Teil des Debuggen des Upgrades. – GLaDOS

Antwort

1

Es schreibt wahrscheinlich mehr Leistung, so ist das eine der Standard-Eingangsleitungen

Blockieren Sie sollten mit dem Ausgang etwas tun.

Dies wird es an die Konsole drucken

command.execute(null as List, outputDir) 
     .waitForProcessOutput(System.out, System.err) 
+0

Danke, das war sehr hilfreich, um die Ausgabe zu sehen. Es gibt ein Problem mit den Anmerkungen. Ich werde versuchen, diese zu reparieren oder eine Version zu finden, auf der es nicht kaputt geht. – GLaDOS

+0

Eigentlich sind dies nur Warnungen über Anmerkungen. Der eigentliche Fehler, der das Problem verursacht, hat etwas mit IE ''zu tun.' ../app/util/Analytics.js:149: Fehler - Parse-Fehler. IE8 (und darunter) wird nachfolgende Kommas in Array- und Objektliteralen falsch analysieren. Wenn Sie auf neuere JS-Versionen abzielen, legen Sie die entsprechende Option language_in fest.' – GLaDOS

Verwandte Themen