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

  • 易于使用
  • 具有高压缩率
  • 产生可靠的最终结果(不会弄乱代码)
有帮助吗?

解决方案

我最近发布了 UglifyJS, ,一个用 JavaScript 编写的 JavaScript 压缩器(运行在 NodeJS Node.js 平台,但可以轻松修改它以在任何 JavaScript 引擎上运行,因为它不需要任何 Node.js 内部结构)。比两者都快很多 YUI压缩器谷歌关闭, ,它的压缩效果比 尤伊 在我测试过的所有脚本上,它比 Closure 更安全(知道处理“eval”或“with”)。

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

  • 更改局部变量名称(通常为单个字符)
  • 连接连续的 var 声明
  • 避免插入任何不需要的括号、括号和分号
  • 优化 IF(当检测到不需要时删除“else”,将 IF 转换为 &&、|| 或 ?/:可能的话,操作员等)。
  • 转变 foo["bar"] 进入 foo.bar 在可能的情况
  • 如果可能的话,从对象文字中的键中删除引号
  • 解析简单的表达式,这会导致代码更小(1+3*4 ==> 13)

附:哦,它还可以“美容”。;-)

其他提示

几年后再看这个问题, UglifyJS, ,似乎是目前最好的选择。

如下所述,它在 NodeJS 平台上运行,但可以轻松修改以在任何 JavaScript 引擎上运行。

---下面是旧答案---

谷歌发布 闭包编译器 到目前为止,这似乎生成了最小的文件 这里这里

在此之前的各种选项 如下

基本上 包装机 在初始压缩方面做得更好,但是如果您要在在线发送之前对文件进行 gzip(您应该这样做) YUI压缩器 获得最小的最终尺寸。

顺便说一句,测试是在 jQuery 代码上完成的。

  • 原始 jQuery 库 62,885 字节,gzip 后 19,758 字节
  • jQuery 使用 JSMin 压缩为 36,391 字节,gzip 后压缩为 11,541 字节
  • jQuery 使用 Packer 缩小为 21,557 字节,gzip 后缩小为 11,119 字节
  • 使用 YUI 压缩器压缩 jQuery 31,822 字节,gzip 后压缩 10,818 字节

@丹尼尔·詹姆斯 评论中提到 压缩器评估器 这表明 Packer 在最佳压缩方面领先,所以我猜 ymmv

YUI压缩器 是要走的路。它具有很高的压缩率,经过充分测试,并在许多顶级网站中使用,并且是我个人推荐的。

我已经将它用于我的项目,没有出现任何 JavaScript 错误或问题。而且它有很好的文档。

我从未使用过它的 CSS 压缩功能,但它们也存在。 CSS 压缩也同样有效。

笔记:尽管迪恩·爱德华兹的/包装工/ 实现了比 YUI Compressor 更好的压缩率,我在使用它时遇到了一些 JavaScript 错误。

我用 收缩安全 来自 Dojo 项目 - 它很特殊,因为它实际上使用了 JavaScript 解释器(犀牛)来处理在代码中查找符号并理解它们的范围等。这有助于确保代码在从另一端出来时能够正常工作,而不是许多使用正则表达式执行相同操作的压缩工具(这不那么可靠)。

我实际上有一个 MSBuild 任务 网络部署项目 在我当前的 Visual Studio 解决方案中,该解决方案运行一个脚本,该脚本又在我们部署之前通过 ShrinkSafe 运行解决方案的所有 JS 文件,并且运行得很好。

编辑: 顺便说一句,“最佳”是有争议的,因为“最佳”的标准会根据项目的需求而变化。就我个人而言,我认为 ShrinkSafe 是一个很好的平衡;对于一些认为最小尺寸==最好的人来说,这是不够的。

编辑: 值得注意的是,YUI压缩器也使用Rhino。

尝试 JS敏, ,获得了 C#、Java、C 和其他端口并且也随时可用。

如果您使用 Packer,只需使用“收缩变量”选项并对生成的代码进行 gzip 压缩即可。base62 选项仅适用于您的服务器无法发送 gzip 压缩文件的情况。带有“shrink vars”的 Packer 可以更好地压缩 YUI,但如果您在某处跳过了分号,则可能会引入错误。

base62 基本上是一个穷人的 gzip,这就是为什么 gzip 压缩 base62 代码比 gzip 压缩收缩 var 代码提供更大的文件。

JS敏 是另一个。

在搜索银弹时,发现了这个问题。对于 Ruby on Rails http://github.com/sstephenson/sprockets

这是源代码 一个 HttpHandler 可以做到这一点,也许它会帮助你

这里 是一个 YUI 压缩脚本(拜尤克)找到路径下的所有 js 和 css 并压缩/(可选)混淆它们。很高兴集成到构建过程中。

香蕉脚本网站 曾经给我最好的结果。

KJS压缩

http://opensource.seznam.cz/KJScompress/index.html

KJSCompress/CSSKompress设置了两个应用程序(KJScompress A CSSCompress),以删除包含JavaScript和CSS的文件中的不重要的Whitespaces和注释。两者都是GNU/Linux操作系统的命令行应用程序。

Js粉碎 是一个很好的压缩器,可以在缩小后使用。

我用 jscompressor.com 作为 Chrome 应用程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top