我记得在github上看过一个新的javascript编译器/ minifier,甚至比google的闭包编译器更好。不幸的是,我不记得它的名字并再次找到它。也许有人可以帮助我? :)
谢谢, 科林
答案 0 :(得分:32)
可能UglifyJS?它是jQuery项目当前使用的缩小器。
查看这些speed comparisons。
答案 1 :(得分:16)
请参阅统计信息src:http://axod.blogspot.ca/2010/01/google-closure-compiler-advanced-mode.html
比较JSMin,Douglas Crockford和Yahoo!锐
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 minifier的想法更进一步。它通过进行实际编译来删除未使用的代码,内联变量并重写代码以使其尽可能小。
访问Google Closure Compiler界面答案 2 :(得分:12)
AFAIK Closure Compiler的ADVANCED模式是城里唯一的游戏,如果你想要全局死代码删除(又名树摇动)和优化。这就是emscripten和ClojureScript以及Dart javascript翻译等项目使用它的原因。
答案 3 :(得分:0)
这是一个老问题,但我发现了一些新信息并想分享。我在GitHub上找到了一个名为RegPack https://github.com/Siorki/RegPack的专用minifier。我说是专门的,因为它旨在优化小(1KB-4KB)文件,并与JavaScript中的Canvas,WebGL和Audio组件一起使用。结果相当惊人,但也特定于您正在编写的JavaScript类型。
注意到,我只是在标准模式下针对我编写的库https://github.com/robertdmunn/gadget-ui运行Closure Compiler,将输出与我通过Grunt使用的UglifyJS进行比较。基本代码为20KB,Uglifier和Closure Compiler(std模式)均为10KB。对于大多数用例,我认为它足够好。关闭高级模式仅将其减少到9KB。对于边缘情况 - 网络规模 - 小10%是体面的。但是请注意,根据我的经验,gzip压缩会将文件大小减少60-80%,因此如果使用gzip,使用高级模式减少10%只会比标准模式节省2-4%。 2-4%在网络规模上很有价值,但对于大多数开发人员来说,可能不值得引入潜在的问题。