2010-07-07 8 views
6

¿Alguna idea sobre cómo usar el compilador de cierres de Google para combinar múltiples archivos JavaScript sin optimizaciones? Específicamente, queremos utilizar Closure para implementar dos versiones de nuestro sitio JavaScript combinado: versión y depuración. Para el lanzamiento, estamos usando --compilation_level SIMPLE_OPTIMIZATIONS --manage_closure_dependencies que está funcionando según lo previsto. Sin embargo, para la depuración, nos gustaría que nuestro JavaScript se combine intacto/no modificado para una depuración más fácil. Parece que el nivel mínimo de optimización es WHITESPACE_ONLY, cualquier idea sería apreciada.¿Alguna idea sobre cómo usar el compilador de cierres de Google para combinar múltiples archivos javascript sin optimizaciones?

Respuesta

2

Resulta que hay una opción para formatear el archivo JavaScript procesado usando el --formatting PRETTY_PRINT. La opción sangra/formatea (con espacios en blanco) el archivo JavaScript de salida, de modo que el JavaScript se puede depurar fácilmente.

deseo la documentación es un poco/:) completa más detallada

2

Dos pensamientos vienen inmediatamente a la mente. Primero, ¿por qué usar el compilador de cierre para esa tarea? ¿Por qué no simplemente algo como cat jsfile1.js jsfile2.js > debug.js? Segundo: Closure Inspector le permitirá depurar el código compilado con Closure Compiler usando FireBug.

para ayudarle a trabajar con su código transformado, también se puede instalar el Closure Inspector, una herramienta que hace que sea fácil de usar el depurador Firebug JavaScript en la salida del compilador.

+1

No podemos concatenar los archivos JavaScript de depuración, porque todavía dependemos del cierre para administrar las dependencias de JavaScript. Analizaré el uso de Closure Inspector, el único desafío sería si tenemos que depurar un problema en otro navegador. – HOCA

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

¿El indicador '--debug true' solo se aplica a las compilaciones Advance (es decir, no simples)? – HOCA

+0

No es solo para el modo Avanzado. En el modo Avanzado, los nombres de propiedades y funciones se cambian. Si activa la depuración, todos los nombres se renombraron en una versión que contiene el nombre original (solo diferente), por lo que puede averiguar inmediatamente qué nombre de propiedad le está dando el problema. En el modo simple, no lo necesita porque las propiedades y funciones no se renombran, pero aún puede usar --debug para averiguar a qué variables locales se le cambia el nombre. –

4

concatenación funciona como se espera también:

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