我正在创建一个相当大的JavaScript库,使用Closure Compiler进行精彩的压缩以及类型检查和警告系统。
我想创建多个输出文件,因为文件是异步加载的(有些文件只是按需加载)。
在源代码中查找,我发现了--module
标志以及一些相关的标志。源代码说明了以下选项:
javascript模块规范。格式为
<name>:<num-js-files>[:[<dep>,...][:]]]
。模块名称必须是唯一的。每个dep都是此模块所依赖的模块的名称。必须按依赖顺序列出模块,并且必须按相应的顺序列出js源文件。与--module
标志相关的--js
标志位置不重要
......这就是我能找到的一切。我想更多地了解如何使用此选项,有没有人有这方面的经验?或者,如果有另一种方法来创建多个输出文件,我会全力以赴。
答案 0 :(得分:23)
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将是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无关紧要。