google closure compiler and jquery

2019-03-15 13:05发布

问题:

I copy-pasted my js code into the google compiler and when I copied it back into my application it didn't work. I realized that my code needs jquery so I copied the jquery code and my code into the google compiler, hoping it would easily solve the problem, but it doesn't work either.

In chrome, the code bugs on the line $(document).K(function () { which is the document ready function. The error is Uncaught TypeError: Object [object Object] has no method 'K'

What do I need to do to make it (tentatively) work?

Thanks for your suggestions.

回答1:

Use@externs_url to "import" symbols in Google's Closure compiler:

// @externs_url https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/jquery-1.9.js

I recommend to use one of the externs as defined in contrib/externs, which only includes the names of all methods.

Example

// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @externs_url https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/jquery-1.9.js
// ==/ClosureCompiler==
$(document).ready(function(){alert(0);});  // Input

Output:

$(document).ready(function(){alert(0)});