Module 闭包按需编译加载模块

Module 闭包按需编译加载模块,module,google-closure-compiler,Module,Google Closure Compiler,我只是发现 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/ThemeC

我只是发现

 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\

但我想知道如何设置--closure\u entry\u点,以及如何按需加载模块化js,这是第一个问题:

--closure_entry_point与--manage_closure_dependencies和--only_closure_dependencies一起使用,以自动将文件从集合传递到编译器。如果不使用这些选项,它们就没有任何价值

关于第二个问题:


您可以像加载任何其他javascript一样加载模块。最简单的方法是,当您想要加载模块时,简单地向DOM追加一个脚本标记。另一种方法是使用XHR加载js,然后使用结果调用eval()

关于你的第一个问题:

--closure_entry_point与--manage_closure_dependencies和--only_closure_dependencies一起使用,以自动将文件从集合传递到编译器。如果不使用这些选项,它们就没有任何价值

关于第二个问题:


您可以像加载任何其他javascript一样加载模块。最简单的方法是,当您想要加载模块时,简单地向DOM追加一个脚本标记。另一种方法是使用XHR加载js,然后使用结果调用eval()

我想把闭包库设置为我的第一个模块,我自己js作为第二个模块,依赖于第一个模块,所以我不需要设置--closure\u entry\u point?不,你不需要设置它。请注意,在高级模式下,编译器将在模块之间移动源代码,因此除非整个输入源集完全相同,否则无法从编译器中交换模块。这就是全局优化的效果。现在我可以编译成多个js文件,例如:A在module1中定义,在module2(deps on module1)中我可以新建A,设置A的字段,但我不能调用A的函数,我不知道怎么了,你能给我一些建议吗?我想将闭包库设置为我的第一个模块,我自己js作为第二个模块,依赖第一个模块,所以我不需要设置--closure\u entry\u point?不,你不需要设置它。请注意,在高级模式下,编译器将在模块之间移动源代码,因此除非整个输入源集完全相同,否则无法从编译器中交换模块。这就是全局优化的效果。现在我可以编译成多个js文件,例如:A在模块1中定义,在模块2(模块1上的deps)中,我可以新建A,设置A的字段,但我不能调用A的函数,我不知道怎么了,你能给我一些建议吗?