我想使用Google Closure編譯器編譯jQuery 2.0.0
。當我這樣做使用this extern其狀態Externs for jQuery 1.9 - 1.11 & 2.0 - 2.1
使用Google Closure編譯器編譯jQuery提供了Uncaught TypeError
我得到以下錯誤:Uncaught TypeError: Cannot read property 'source' of undefined
。這標誌了下面的一段編譯代碼:
d.each(d.i.match.ja.source.match(/\w+/g), function(a, b) {
var c = ra[b] || d.find.attr;
ra[b] = function(a, b, d) {
var h, k;
d || (k = ra[b],
ra[b] = h,
h = null != c(a, b, d) ? b.toLowerCase() : null,
ra[b] =
k);
return h
}
});
該代碼對應於在這裏的非編譯代碼:
jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g), function(i, name) {
var getter = jQuery.expr.attrHandle[name] || jQuery.find.attr;
jQuery.expr.attrHandle[name] = getSetInput && getSetAttribute || !ruseDefault.test(name) ?
function(elem, name, isXML) {
var fn = jQuery.expr.attrHandle[name],
ret = isXML ?
undefined :
/* jshint eqeqeq: false */
(jQuery.expr.attrHandle[name] = undefined) !=
getter(elem, name, isXML) ?
name.toLowerCase() :
null;
jQuery.expr.attrHandle[name] = fn;
return ret;
} :
function(elem, name, isXML) {
return isXML ?
undefined :
elem[jQuery.camelCase("default-" + name)] ?
name.toLowerCase() :
null;
};
});
下面就是我進入在線閉合編譯:
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @code_url https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.js
// @externs_url https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/jquery-1.9.js
// ==/ClosureCompiler==
// ADD YOUR CODE HERE
$("#foo").html("Example Text");
我想知道是否有人知道如何修復extern,以便它可以與更高版本的jQuery一起工作,或者如果有一個extern可用於任何地方的更高版本?
可能的重複[如何使jQuery與谷歌封閉編譯器](http://stackoverflow.com/questions/16461915/how-to-make-jquery-work-with-google-closure-compiler) –