24

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

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

查看源代码,我找到了这个--module标志,以及一些相关的标志。源代码对选项进行了以下说明:

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

......这就是我能找到的全部。我很想了解有关如何使用此选项的更多信息,有人在这里有任何经验吗?或者,如果有另一种方法来创建多个输出文件,我全神贯注。

4

1 回答 1

24
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 在输出模块时是无关紧要的。

注意:显然闭包编译器已将参数“--module”更改为“--chunk”。一位编辑提出了修改建议;对于较新的版本,我保留了更改,对于较旧的版本,我保留了较旧的参数名称,因为总是有人在使用旧版本的构建工具,而那种小的破坏性更改真的会把你搞砸。

于 2011-10-19T19:50:25.597 回答