我记得在 github 上看到过一个新的 javascript 编译器/压缩器,它甚至应该比 google 的闭包编译器更好。不幸的是我记不起它的名字并再次找到它。也许有人可以帮助我? :)
查看统计src:http://axod.blogspot.ca/2010/01/google-closure-compiler-advanced-mode.html
比较 Douglas Crockford 和 Yahoo! 的 JSMin唯
Minifier | Bytes |% of original| gz Bytes | gz % original
None | 428,264 | 100% | 91,750 | 100%
JSMin | 249,372 | 58% | 57,338 | 62%
YUI | 235,214 | 55% | 55,990 | 61%
Closure (STANDARD) | 219,446 | 51% | 53,515 | 58%
Closure (ADVANCED) | 166,774 | 39% | 47,372 | 52%
Closure 将 Javascript 压缩器的想法更进一步。它通过进行真正的编译来删除未使用的代码、内联变量并重写代码以使其尽可能小来实现此目的。
仅供参考,您可以在此处访问 Google Closure Compiler UI http://closure-compiler.appspot.com/home
如果您想要全局死代码删除(又名树摇动)和优化,AFAIK Closure Compiler 的高级模式是镇上唯一的游戏。 这就是为什么 emscripten 和 ClojureScript 以及 Dart javascript 翻译器等项目使用它的原因。
这是一个老问题,但我发现了一些新信息并想分享。我在 GitHub 上找到了一个名为 RegPack 的专用压缩器,https://github.com/Siorki/RegPack。我说专门是因为它旨在优化小(1KB-4KB)文件并与 JavaScript 中的 Canvas、WebGL 和音频组件配合使用。结果相当令人震惊,但也特定于您正在编写的 JavaScript 类型。
注意到,我只是在标准模式下针对我编写的库运行 Closure Compiler,https://github.com/robertdmunn/gadget-ui,以将输出与我通过 Grunt 使用的 UglifyJS 进行比较。基本代码为 20KB,Uglifier 和 Closure Compiler(std 模式)均使其达到 10KB。对于大多数用例,我认为这已经足够好了。关闭高级模式仅将其减少到9KB。对于边缘情况 - 网络规模 - 小 10% 就可以了。但考虑到,根据我的经验,gzip 压缩会将文件大小减少 60-80%,因此,如果使用 gzip,使用高级模式减少 10% 的文件大小仅比标准模式节省 2-4%。 2-4% 在网络规模上是有价值的,但对于大多数开发人员来说,可能不值得引入潜在的问题。