最佳JavaScript压缩器

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (3)
  • 关注 (0)
  • 查看 (87)

什么是最好的JavaScript压缩机可用?我正在寻找一个工具:

  • 容易使用
  • 具有很高的压缩率
  • 产生可靠的最终结果(不会搞乱代码)
提问于
用户回答回答于

如果你使用Packer,只要点击“shrink variables”选项,然后gzip生成的代码即可。base62选项仅适用于服务器无法发送gzip文件的情况。带有“shrink vars”的打包程序将比YUI有更好地压缩,但是如果您在某处跳过了分号,则会引入错误。

base62基本上是一个穷人的gzip,这就是为什么gzip base62编码给你比gzipping shrink-var-ed编码更大的文件。

用户回答回答于

几年后重新审视这个问题,UglifyJS似乎是目前最好的选择。

如下所述,在NodeJS平台运行上时,可以很容易地修改并且能在任何JavaScript引擎上运行。

Google发布了Closure Compiler,它似乎是压缩后得到最小的压缩文件

在Google未发布Closure Compiler之前的各种选择如下

基本上Packer在初始压缩方面做得比较好,但是如果你要在发送文件之前(你应该这样做)来压缩文件,YUI Compressor 最终的压缩文件是最小的

测试是在jQuery代码btw上完成的。

  • 原始jQuery库62,885字节,gzip后19,758字节
  • jQuery与JSMin 36,391字节,gzip后11,541字节缩小
  • jQuery用Packer 缩小了21,557字节,在gzip之后11,119字节
  • jQuery使用YUI压缩器缩小了31,822字节,gzip后是10,818字节
用户回答回答于

我最近发布了一个用JavaScript编写的JavaScript压缩器UglifyJS(在NodeJS Node.js平台上运行时,因为它不需要任何Node.js,所以可以很容易地修改并且在任何JavaScript引擎上运行)。它比YUI CompressorGoogle Closure都快很多,在我测试过的所有脚本的压缩率都比YUI好,而且比Closure(知道如何处理“eval”或“with”)更安全。

除了空格删除之外,UglifyJS还执行以下操作:

  • 更改本地变量名称(通常为单个字符)
  • 连接var声明
  • 避免插入任何不需要的括号,parens和分号
  • 优化IF(在检测到不需要“else”时除去“else”,在可能的情况下将IF转换为&&,||或?/:运算符等)。
  • 将foo["bar"]转化foo.bar
  • 在可能的情况下,从对象字面值的键中删除引号
  • 当然这可能会导致更小的代码如:(1 + 3 * 4 ==> 13)

PS:哦,它也可以“美化”。

扫码关注云+社区

领取腾讯云代金券