你必须告诉 Closure 编译器什么不要优化。
我通过添加 externs_url 参数使用在线编译器( http://closure-compiler.appspot.com/home )来做到这一点。当您在在线编译器上输入代码时,它会自动附加一个与此类似的标头,但默认情况下没有 externs_url 参数。
// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level ADVANCED_OPTIMIZATIONS
// @externs_url https://closure-compiler.googlecode.com/git/contrib/externs/jquery-1.9.js
// ==/ClosureCompiler==
您可以在https://code.google.com/p/closure-compiler/source/browse/contrib/externs/查看当前可用的外部文件。他们拥有几乎所有版本的 jQuery。
要使用可下载的 Java 版本的编译器执行此操作,您只需在 cli 上传递 --externs_url 参数或下载所需的 extern 文件并使用 --externs 参数传递该文件名,就像在 Palmerlee 的回答中一样。
如果您对为什么不能只打开高级优化感兴趣,请阅读http://code.google.com/closure/compiler/docs/api-tutorial3.html