google compressor compiler closure google-closure-compiler

google-closure-compiler - compressor - uglifyjs



Uso de la opción--module en Closure Compiler para crear múltiples archivos de salida (1)

java -jar compiler.jar ^ --module jq:1: --js jquery-1.6.2.js ^ --module t:1:jq: --js test.js ^ --compilation_level ADVANCED_OPTIMIZATIONS

Este ejemplo compilará 2 archivos para usted:

  • jq.js
  • t.js

jq.js será jquery 1.6.2 con minification avanzado, y t.js usará esa versión minified de JQuery correctamente.

Me gustaría que hubiera un JavaFiddle donde pudiera publicar esto para demostrarlo.


Versión antigua

Esta respuesta original fue para una versión anterior de Closure Compiler. Lo he dejado intacto a continuación en caso de que esté en un entorno que necesite mantener la versión anterior en su lugar.

Cómo manejar múltiples archivos de salida, también conocidos como módulos: http://groups.google.com/group/closure-compiler-discuss/browse_thread/thread/ec7f6809b19b019e/25a94f3994173840

Copiar / pegar:

java -jar Build/Tools/compiler.jar ^ --compilation_level=ADVANCED_OPTIMIZATIONS ^ --externs Build/jQuery.externs.js ^ --js Build/Output/Compiling.js ^ --js Script/Themes.lang.js ^ --js Script/Themes.js ^ --module Core:3 ^ --js UI/ThemeChooser/ThemeChooser_en.htm.js ^ --js UI/ThemeChooser/ThemeChooser.js ^ --module UI_ThemeChooser:2:Core ^ --js UI/VerticalTabs/VerticalTabs_en.htm.js ^ --js UI/VerticalTabs/VerticalTabs.js ^ --module UI_VerticalTabs:2:Core ^ --js Pager/Pager_en.htm.js ^ --js Pager/jquery.Pager.js ^ --js Pager/Pager.js ^ --module Pager:3:VerticalTabs ^ --module_output_path_prefix ./Compiled/

Y como señala, --js_output_file es irrelevante al generar módulos.

Estoy creando una biblioteca bastante grande de JavaScript, utilizando Closure Compiler tanto por su maravillosa compresión como por los sistemas de comprobación de tipos y de advertencia.

Sin embargo, quiero crear varios archivos de salida, porque los archivos se cargan de forma asíncrona (y algunos archivos solo se cargan a pedido).

Hurgando en el código fuente, he encontrado la --module , así como algunas banderas relacionadas. El código fuente dice lo siguiente acerca de la opción:

Una especificación del módulo javascript. El formato es <name>:<num-js-files>[:[<dep>,...][:]]] . Los nombres de los módulos deben ser únicos. Cada dep es el nombre de un módulo del que depende este módulo. Los módulos deben estar listados en orden de dependencia, y los archivos fuente js deben estar listados en el orden correspondiente. Donde --module banderas --module producen en relación con --js banderas no es importante

... y eso es todo lo que puedo encontrar. Me encantaría aprender más sobre cómo usar esta opción, ¿alguien tiene alguna experiencia aquí? Alternativamente, si hay otra forma de crear múltiples archivos de salida, soy todo oídos.