Подтвердить что ты не робот

Использование опции -module в Closure Compiler для создания нескольких выходных файлов

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

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

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

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

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

4b9b3361

Ответ 1

java -jar compiler.jar ^
--chunk jq:1: --js jquery-1.6.2.js ^
--chunk 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 не имеет значения при выводе модулей.

Примечание. Видимо, компилятор Closure изменил аргумент "--module" на "--chunk". Редактор предложил изменение; для более новой версии я сохранил изменение, для более старой версии я сохранил более старое имя аргумента, поскольку всегда есть люди, использующие более старые версии инструментов сборки, и такого рода небольшие изменения могут действительно испортить вам жизнь.