编译级Javascript压缩混淆工具:Closure-Compiler

真正的编译器

Closure-Compiler 主页:https://code.google.com/p/closure-compiler/

压缩JS脚本的工具有很多,例如JSMin,UglifyJS等,相比于传统的压缩器只做了词法上的扫描,Google Closure-Compiler更类似于是一个编译器,分析AST来进行优化.GCC的压缩混淆除了变量替换,去除注释空格等,在高级模式下,它会破坏性的重写优化代码.对代码压缩做到了极致.优化策略是:

1.更激进的重命名,如 obj.property 改为 a.b,将深度过高的命名空间平坦化等(所以如果引用了外部库时,需要要加入忽略);

2.移除垃圾代码,如删除未被调用的方法定义,警告逻辑死角(return 后的语句等)

3.将函数内联,如 a call b, b call c,a(),那么直接执行 c()。

例如

var x = 17 + 25;

// 编译后

var x=42;

由于改变(破坏)了原有代码结构,直接输出了代码最终运行结果,所以使用起来要严格按照规范执行.

使用

google-closure-compiler --js file.js --js_output_file file.out.js

使用高级模式

google-closure-compiler -O ADVANCED rollup.js --js_output_file rollup.min.js

查看编译选项

google-closure-compiler --help

编译多个文件

google-closure-compiler in1.js in2.js in3.js --js_output_file out.js

一个可以直接用的实例

https://github.com/lear315/ClosureCompilerJS

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值