使用Closure Compiler中的--module选项创建多个输出文件

时间:2010-07-08 14:13:36

标签: google-closure-compiler

我正在创建一个相当大的JavaScript库,使用Closure Compiler进行精彩的压缩以及类型检查和警告系统。

我想创建多个输出文件,因为文件是异步加载的(有些文件只是按需加载)。

在源代码中查找,我发现了--module标志以及一些相关的标志。源代码说明了以下选项:

  

javascript模块规范。格式为<name>:<num-js-files>[:[<dep>,...][:]]]。模块名称必须是唯一的。每个dep都是此模块所依赖的模块的名称。必须按依赖顺序列出模块,并且必须按相应的顺序列出js源文件。与--module标志相关的--js标志位置不重要

......这就是我能找到的一切。我想更多地了解如何使用此选项,有没有人有这方面的经验?或者,如果有另一种方法来创建多个输出文件,我会全力以赴。

1 个答案:

答案 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
  • 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无关紧要。