使用 Google Closure Compiler 编译的 jQuery

IT技术 javascript jquery minify google-closure google-closure-compiler
2021-03-09 07:58:29

有没有人针对 Google 新发布的Closure编译器编译 jQuery

据报道,代码大小节省了大量资金。我很好奇用它编译 jQuery 有什么好处。

6个回答

John Resig 在尝试编译 jQuery 1.4 每晚时报告了一个关于递归函数的错误,因此有一些问题需要解决。如果不确保它通过 jQuery 测试平台,我不会使用使用 Closure Compiler 编译的 jQuery。

http://code.google.com/p/closure-compiler/issues/detail?id=1&can=1#c2

指出,现在 jQuery 1.4 发布,错误已经解决,Closure Compiler 现在是 jQuery 的主要缩小器:)
2021-04-26 07:58:29
只是一个简短的说明:事实证明,调用闭包编译器相当简单。除此之外,它是一个优化编译器,删除死代码并通过静态分析提供有用的编译时警告。
2021-05-10 07:58:29

我尝试使用 jQuery jQuery 1.3.2

jQuery-1.3.2.min.js     57254 Bytes
jQuery closure compiler 49730 Bytes
-----------------------------------
Reduced by               7524 Bytes
Saved 13.31% off the original size
Saved 10.87% off the gzipped size

增益 ~7KB

但它也报告了 15 个警告,我没有测试它是否仍然有效

闭包编译器消除了您实际上不使用的任何代码。典型的网页只会使用一小部分 jQuery 函数,因此最大的好处将来自将代码与完整版本的 jQuery 一起编译。

这就是意图,是的,但是高级闭包编译器现在还远非完美。
2021-04-30 07:58:29
实际上,上次我检查 Closure 并没有真正从 jQuery 中删除未使用的函数,我想是因为它们实际上并未定义为单独的函数。
2021-05-01 07:58:29
如果是这样,当您只编译 jQuery 库时,Closure Compiler 不会删除几乎所有代码吗?
2021-05-04 07:58:29
但是,当然,您失去了缓存在用户计算机上的 jQuery 代码(如果是)的任何好处。
2021-05-08 07:58:29

关闭 ADVANCED_OPTIMIZATIONS 后:

  • jquery-1.3.2.min.js:57254 字节
  • jquery-1.3.2.closure.js 55346 字节 (-3.4%)
  • jquery-1.3.2.min.js.gz:19680 字节
  • jquery-1.3.2.closure.js.gz:18666 字节(-5.2%)

开启 ADVANCED_OPTIMIZATIONS 后:未经修改就无法工作。打开 ADVANCED_OPTIMIZATIONS 并且我能找到的所有导出的东西都导出了......它仍然不能正常工作,并且代码已经再次达到 53466 字节(和 18785 gzipped,这比没有 ADVANCED_OPTIMIZATIONS 的 gzipped 封闭代码更多)所以它看起来不像是一个成功的提议。

ADVANCED_OPTIMIZATIONS 标志不会针对文件大小进行优化,而是针对执行速度进行优化(它会尝试更改您的代码以使其运行速度更快,而不是下载速度更快)。
2021-05-09 07:58:29
@Kekoa,从我在网上印刷品中阅读的内容来看,文件大小(和下载速度)似乎是 ADVANCED_OPTIMIZATIONS 和编译器的主要目标。
2021-05-10 07:58:29
较小的文件大小通常(但并非总是)产生更快的代码。死代码删除和内联服务于这两个目的。
2021-05-11 07:58:29
如果有很多调用,内联并不总是减少文件大小。
2021-05-16 07:58:29

从 jQuery 1.4 开始,Google 的 Closure Compiler 被用作 jQuery 版本的默认缩小技术。但是,jQuery 只使用 SIMPLE_OPTIMIZATIONS 设置。jQuery 团队没有计划支持 ADVANCED_OPTIMIZATIONS

过时:“但是,我们相信我们可以做得比这更好,并希望为任何用户提供自动化的方式来创建一个优化最小化的文件,其中包括应用程序代码和 jQuery 所需的部分。特别是,我们正在努力与 Google Closure Compiler 团队合作,看看我们是否可以使用其 ADVANCED_OPTIMIZATIONS 选项。随着它的发展,我们将获得有关我们进展的更多信息。” blog.jquery.com/2011/11/22/call-for-jquery-1-8-ideas
2021-04-17 07:58:29