2010-07-08 13 views
21

Tworzę dość dużą bibliotekę JavaScript, używając kompilatora zamykania zarówno do jego wspaniałej kompresji, jak i systemów sprawdzania i ostrzegania.Użycie opcji --module w Kompilatorze zamykania w celu utworzenia wielu plików wyjściowych

Chcę utworzyć wiele plików wyjściowych, ponieważ pliki są ładowane asynchronicznie (a niektóre pliki są ładowane tylko na żądanie).

Kręciłem się po kodzie źródłowym, znalazłem flagę --module, a także kilka powiązanych z nią flag. Kod źródłowy zawiera następujące informacje na temat opcji:

Specyfikacja modułu javascript. Format to <name>:<num-js-files>[:[<dep>,...][:]]]. Nazwy modułów muszą być unikalne. Każdy dep jest nazwą modułu, od którego zależy ten moduł. Moduły muszą być wymienione w kolejności zależności, a pliki źródłowe js muszą być wymienione w odpowiedniej kolejności. Gdzie --module flagi występować w stosunku do --js flagi jest nieważna

... i to wszystko, co mogę znaleźć. Chciałbym dowiedzieć się więcej o tym, jak korzystać z tej opcji, czy ktoś ma tu jakieś doświadczenie? Ewentualnie, jeśli istnieje inny sposób na tworzenie wielu plików wyjściowych, mam tylko uszy.

+0

Witam, zastanawiałem się, czy kiedykolwiek to rozgryzłeś. Utknąłem z podobnym problemem. –

+1

Zbudowano hacky rozwiązanie przy użyciu Python tutaj: https://github.com/fortes/js-project-template – Fortes

Odpowiedz

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

Ten przykład skompilować się 2 pliki do Ciebie:

  • jq.js
  • t.js

jq.js będzie jQuery 1.6.2 z zaawansowanym minifikacji , a t.js poprawnie użyje tej minifikowanej wersji JQuery.

Żałuję, że nie było JavaFiddle mogę opublikować to, aby to pokazać.


Starsza wersja

Ta oryginalna odpowiedź była dla starszej wersji Closure Compiler. Pozostawiłem je w stanie nienaruszonym poniżej, na wypadek gdybyś był w środowisku, które musi zachować starszą wersję.

Jak obsługiwać wiele plików wyjściowych, alias modułów: http://groups.google.com/group/closure-compiler-discuss/browse_thread/thread/ec7f6809b19b019e/25a94f3994173840

Kopiuj/wklejanie:

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\ 

I jak zauważa, --js_output_file ma znaczenia podczas wyprowadzania modułów.

Powiązane problemy