google closure编译jQuery插件

and*_*lzo 4 jquery google-closure-compiler

我正在测试谷歌闭包编译器,并希望使用选项"高级" 编译facebox插件,尝试查找"aH"的函数发生错误.

有没有人试图用这个选项编译jQuery插件,效果很好.

谢谢.

编辑: 显然这重新命名jQuery方法,但是可以包含jQuery并同等地重命名所有方法吗?

编辑

带有"externs_url"选项的代码示例:

with closure-compiler

js输入代码

// ==ClosureCompiler==
// @output_file_name default.js
// @formatting pretty_print
// @compilation_level ADVANCED_OPTIMIZATIONS
// @warning_level QUIET
// @externs_url http://code.jquery.com/jquery-1.5.min.js
// ==/ClosureCompiler==

// ADD YOUR CODE HERE

var test = function($, context) {

  var
    _self = this;

  _self.mymethod = function() {

    var lista = $("a", context);

    lista.attr("target", "_blank");

    return lista.html();

  };


  return {"mymethod":_self.mymethod};

}.call({}, jQuery, context);    
Run Code Online (Sandbox Code Playgroud)

js输出代码

(function(b, c) {
  this.a = function() {
    var a = b("a", c);
    a.attr("target", "_blank");
    return a.html()
  };
  return{mymethod:this.a}
}).call({}, jQuery, context);
Run Code Online (Sandbox Code Playgroud)

mnd*_*rix 5

jQuery库本身无法编译ADVANCED_OPTIMIZATIONS,但您可以使用Closure Compiler externs文件通过高级优化编译自己的代码,该文件指定整个jQuery API.从Closure Compiler存储库下载与您的jQuery版本相关的externs文件.在示例中,我将使用1.4.3版

以下假定您的应用程序的代码在,application.js并且compiler.jar是Google Closure Compiler jar文件(在此zip文件中可用):

java -jar compiler.jar \
--compilation_level ADVANCED_OPTIMIZATIONS \
--externs jquery-1.4.3.externs.js \
--js_output_file output.js \
application.js
Run Code Online (Sandbox Code Playgroud)

externs文件告诉Closure Compiler存在哪些jQuery方法,因此它知道不重命名它们.