论坛首页 Web前端技术论坛

UglifyJS初探

浏览 4539 次
锁定老帖子 主题:UglifyJS初探
精华帖 (0) :: 良好帖 (6) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-03-26   最后修改:2011-03-26


jquery 1.5 代码压缩工具已经从GCL(Google Closure)切换到了UglifyJS,UglifyJS的压缩效果非常好,并且压缩后的代码是安全的。


下面是UglifyJS 与  YUI 、 GCL 间压缩结果对比。

Library Orig. size UglifyJS YUI GCL
DynarchLIB 636896 241441 246452 (+5011) 240439 (-1002) (buggy)
jQuery 163855 72006 79702 (+7696) 71858 (-148)


uglifyjs通过下面方式来达到代码高度压缩:


  • foo[“bar”] ==> foo.bar
  • 删除{}块
  • var a = 10; var b = 20; ==> var a=10,b=20;
  • 1 +2 * 3 ==> 7
  • 连续的代码块会合并成一个
  • 删除一些无法访问的代码


    对于if语句uglifyjs 会做下面的优化


  • if (foo) bar(); else baz(); ==> foo?bar():baz();
  • if (!foo) bar(); else baz(); ==> foo?baz():bar();
  • if (foo) bar(); ==> foo&&bar();
  • if (!foo) bar(); ==> foo||bar();
  • if (foo) return bar(); else return baz(); ==> return foo?bar():baz();
  • if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}


    不同平台UglifyJS版本:

    nodejs version:                https://github.com/mishoo/UglifyJS
    common Lisp version:    http://github.com/mishoo/cl-uglify-js
    java version:          https://github.com/yuanyan/UglifyJS-java 






     

       发表时间:2011-03-27  
    YUI压缩jQuery1.5.1后竟然92K。我就觉得哪不对,原来是jQuery换了压缩工具!!!!。
    1 请登录后投票
       发表时间:2011-03-28   最后修改:2011-03-28
    amwjx 写道
    YUI压缩jQuery1.5.1后竟然92K。我就觉得哪不对,原来是jQuery换了压缩工具!!!!。

    YUI compressor几乎已经废弃了,最起码在淘宝和支付宝现在不用YUI compressor来压缩线上代码,一般用google closure sample 模式,如能用上google closure高级模式压缩效果就更棒了,但使用高级模式的前置条件太多,如果没有满足高级模式下要求的条件,压缩后的代码是不安全的
    0 请登录后投票
       发表时间:2011-04-04  
    UglifyJS确实是不错的
    0 请登录后投票
    论坛首页 Web前端技术版

    跳转论坛:
    Global site tag (gtag.js) - Google Analytics