2010-07-07 5 views
6

Haben Sie Ideen, wie Sie mit Google Closure Compiler mehrere JavaScript-Dateien ohne Optimierungen kombinieren können? Insbesondere möchten wir Closure verwenden, um zwei Versionen unseres kombinierten Website-JavaScript zu implementieren: release und debug. Für die Freigabe verwenden wir --compilation_level SIMPLE_OPTIMIZATIONS --manage_closure_dependencies, die wie vorgesehen funktioniert. Für das Debuggen möchten wir jedoch, dass unser JavaScript zum leichteren Debugging intakt/unmodifiziert kombiniert wird. Es scheint die minimale Stufe der Optimierung ist WHITESPACE_ONLY, alle Ideen würden geschätzt werden.Haben Sie Ideen, wie Sie mit Google Closure Compiler mehrere Javascript-Dateien ohne Optimierungen kombinieren können?

Antwort

2

Es gibt eine Option zum Formatieren der verarbeiteten JavaScript-Datei mit der --formatting PRETTY_PRINT. Die Option Einzüge/Formate (mit Leerzeichen) der Ausgabe JavaScript-Datei, so dass das JavaScript leicht debuggbar ist.

Wunsch die Dokumentation etwas ausführlicher/complete :) ist

2

Zwei Gedanken kommen mir sofort in den Sinn. Erstens - Warum Closure Compiler für diese Aufgabe verwenden, warum nicht einfach so etwas wie cat jsfile1.js jsfile2.js > debug.js? Zweitens - Closure Inspector können Sie Debug-Code kompiliert mit Closure Compiler mit FireBug.

Damit Sie mit Ihrem transformierten Code arbeiten, können Sie auch die Closure Inspector, ein Tool installieren, die es einfach zu verwenden, um den Firebug JavaScript-Debugger mit dem Ausgang des Compiler macht.

+1

Wir können die JavaScript-Dateien in Debug nicht einfach verketten, weil wir immer noch auf die Schließung angewiesen sind, um JavaScript-Abhängigkeiten zu verwalten. Ich werde mit Closure Inspector arbeiten, die einzige Herausforderung wäre, wenn wir ein Problem in einem anderen Browser debuggen müssen. – HOCA

4
--formatting PRETTY_PRINT for beautifying 
--debug true for meaningful names (after Advanced compilation) 
+0

Gilt das '--debug true' Flag nur für Advance Compilations (also nicht einfach)? – HOCA

+0

Es ist nicht nur für den erweiterten Modus. Im erweiterten Modus werden Eigenschaften- und Funktionsnamen geändert. Wenn Sie Debug aktivieren, wurden alle Namen in eine Version umbenannt, die den ursprünglichen Namen enthält (nur anders), so dass Sie sofort herausfinden können, welcher Name der Eigenschaft das Problem verursacht. Im einfachen Modus brauchen Sie das nicht, weil Eigenschaften und Funktionen nicht umbenannt werden, aber Sie können immer noch --debug verwenden, um herauszufinden, welche lokalen Variablen umbenannt werden. –

4

Verkettungs funktioniert wie Sie es erwarten würden:

java -jar compiler.jar --js 1.js --js 2.js --js_output_file out.js 
Verwandte Themen