2010-07-07 2 views
6

Qualche idea su come utilizzare Google Closure Compiler per combinare più file JavaScript senza alcuna ottimizzazione? Nello specifico, vogliamo utilizzare Closure per distribuire due versioni del nostro sito JavaScript combinato: release e debug. Per il rilascio, stiamo usando --compilation_level SIMPLE_OPTIMIZATIONS --manage_closure_dependencies che funziona come previsto. Tuttavia, per il debug, vorremmo che il nostro JavaScript fosse combinato intatto/non modificato per facilitare il debugging. Sembra che il livello minimo di ottimizzazione sia WHITESPACE_ONLY, qualsiasi idea sarebbe apprezzata.Qualche idea su come utilizzare Google Closure Compiler per combinare più file javascript senza alcuna ottimizzazione?

risposta

2

Si scopre che esiste un'opzione per formattare il file JavaScript elaborato utilizzando --formatting PRETTY_PRINT. L'opzione fa rientrare/formattare (con spazi bianchi) il file JavaScript di output, in modo tale che il JavaScript sia facilmente debuggabile.

auguro la documentazione è un po 'più dettagliata/completo :)

2

Due pensieri vengono in mente immediatamente. In primo luogo - Perché utilizzare compilatore di chiusura per tale attività, perché non solo qualcosa come cat jsfile1.js jsfile2.js > debug.js? Secondo - Closure Inspector consentirà di eseguire il debug del codice compilato con il compilatore di chiusura utilizzando FireBug.

per aiutarvi a lavorare con il codice trasformato, è anche possibile installare il Closure Inspector, uno strumento che lo rende facile da usare il debugger di Firebug JavaScript con l'uscita del compilatore.

+1

non possiamo semplicemente concatenare i file JavaScript in di debug, perché dipendiamo ancora dalla chiusura per gestire le dipendenze JavaScript. Cercherò di utilizzare Closure Inspector, l'unica sfida sarebbe se abbiamo bisogno di eseguire il debug di un problema in un altro browser. – HOCA

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

Il flag '--debug true' si applica solo alle compilation Advance (cioè non semplici)? – HOCA

+0

Non è solo per la modalità avanzata. In modalità Avanzata, i nomi di proprietà e funzioni sono cambiati. Se attivi il debug, tutti i nomi vengono rinominati in una versione che contiene il nome originale (solo diverso), in modo da poter scoprire immediatamente quale nome di proprietà ti sta dando il problema. In modalità semplice, non è necessario perché le proprietà e le funzioni non vengono rinominate, ma è comunque possibile utilizzare --debug per scoprire a quali variabili locali viene rinominato. –

4

concatenazione funziona come ci si aspetta che:

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