Javascript 闭包编译器-使用jQuery和闭包对源代码进行混合编译

Javascript 闭包编译器-使用jQuery和闭包对源代码进行混合编译,javascript,jquery,google-closure-compiler,google-closure,Javascript,Jquery,Google Closure Compiler,Google Closure,我正在将一个项目从jQuery迁移到Close。我想编译一些只迁移了一半的代码。未编译的源代码工作正常。我想知道什么compile命令可以使用简单的优化来编译它 基于jQuery的原始代码的编译命令如下: java -jar ~/closure/closure-compiler/build/compiler.jar \ --js ~/Sites/mysite/js/bc_school6_2.js \ --js ~/Sites/js_common/bc.job_school.js \

我正在将一个项目从jQuery迁移到Close。我想编译一些只迁移了一半的代码。未编译的源代码工作正常。我想知道什么compile命令可以使用简单的优化来编译它

基于jQuery的原始代码的编译命令如下:

java -jar ~/closure/closure-compiler/build/compiler.jar \
  --js ~/Sites/mysite/js/bc_school6_2.js \
  --js ~/Sites/js_common/bc.job_school.js \
  --js ~/Sites/js_common/bc_help.js \
  --js ~/Sites/js_common/validation.js \
  --js ~/Sites/js_common/md5.js \
  --js ~/Sites/js_common/chosen.jquery.js \
  --js ~/Sites/js_common/jquery.reveal.js \
  --js ~/Sites/js_common/printArea.js 
  > ~/Sites/mysite/js-minified/bc_school6_2s.js 
完全迁移时,源代码的简单\u优化编译命令如下(尽管完全迁移的代码将使用高级\u优化):

目前,名称空间没有在源代码中正确设置,因此后一个编译过程无法正常工作

是否可以使用googleclosure库编译源代码,然后从
js_common
文件夹中添加所有jQuery文件?我可以在一个compile命令中完成吗?如果不是,我可以编译我的
goog
代码,然后合并jQuery材料吗


谢谢。

您可以编译
goog
代码,然后将jQuery代码作为外部代码包含进来。此方法还允许您在
高级模式下编译代码
,并且仍然能够以原始形式使用
jQuery

为此,您必须使用包含所有外部声明的.js文件。然后使用
--externs
标志告诉闭包编译器在哪里查找externs。请参见下面的示例用法:

java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS \
     --js makeallnotes.js --externs extern1.js --externs extern2.js
要了解有关如何声明外部对象的更多信息,请参见此。基本上,它们用于告诉闭包编译器您正在使用的外部API或库

实际上,googleclosure源代码中包含了一个
jQuery
extern文件。查找您正在使用的
jQuery
版本

另一方面,我会考虑使用来构建您的闭包项目。它允许您使用配置文件来设置所有构建参数,并且如果您经常构建代码,将节省大量时间

java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS \
     --js makeallnotes.js --externs extern1.js --externs extern2.js