Использование параметра --module в Closure Compiler для создания нескольких выходных файлов - PullRequest
23 голосов
/ 08 июля 2010

Я создаю довольно большую библиотеку JavaScript, использую Closure Compiler для великолепного сжатия, а также для систем проверки типов и предупреждений.

Я хочу создать несколько выходных файлов, потому чтофайлы загружаются асинхронно (а некоторые файлы загружаются только по требованию).

При поиске исходного кода я обнаружил флаг --module, а также некоторые связанные с ним флаги.Исходный код говорит об этой опции следующее:

Спецификация модуля javascript.Формат <name>:<num-js-files>[:[<dep>,...][:]]].Имена модулей должны быть уникальными.Каждый депозит - это имя модуля, от которого зависит этот модуль.Модули должны быть перечислены в порядке зависимости, а исходные файлы js должны быть перечислены в соответствующем порядке.Где --module flags встречаются относительно --js flags, неважно

... и это все, что я могу найти.Я хотел бы узнать больше о том, как использовать эту опцию, есть ли у кого-нибудь опыт здесь?В качестве альтернативы, если есть другой способ создания нескольких выходных файлов, у меня все уши.

1 Ответ

23 голосов
/ 19 октября 2011
java -jar compiler.jar ^
--module jq:1: --js jquery-1.6.2.js ^
--module t:1:jq: --js test.js ^
--compilation_level ADVANCED_OPTIMIZATIONS

Этот пример скомпилирует 2 файла для вас:

  • jq.js
  • t.js

jq.jsбыть jquery 1.6.2 с расширенной минимизацией, и t.js будет правильно использовать эту минимизированную версию JQuery.

Мне бы хотелось, чтобы был JavaFiddle, который я мог бы опубликовать, чтобы продемонстрировать его.

Старая версия

Этот оригинальный ответ был для более старой версии Closure Compiler.Я оставил это без изменений ниже на тот случай, если вы находитесь в среде, в которой необходимо сохранить старую версию.

Как работать с несколькими выходными файлами, или модулями: http://groups.google.com/group/closure-compiler-discuss/browse_thread/thread/ec7f6809b19b019e/25a94f3994173840

Копирование / вставка:

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\ 

И, как он отмечает, --js_output_file не имеет значения при выводе модулей.

...