最佳JavaScript压缩器

2020/10/23 12:41 · javascript ·  · 0评论

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

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

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

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

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

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

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

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

-下面的旧答案-

Google发布了Closure Compiler,该文件似乎在这里这里都已生成最小的文件

在此之前,各种选项如下

基本上,Packer在初始压缩时做得更好,但是如果要在在线发送之前对文件进行gzip处理(应该这样做),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 Compressor缩小了31,822字节,gzip后为10,818字节

@ daniel james在注释Compressorrater中提到,Packerrater显示Packer处于最佳压缩状态,因此我认为是ymmv

YUI Compressor是必经之路。它具有很高的压缩率,经过了良好的测试,并在许多顶级站点中得到使用,并且,我个人建议这样做。

我已经将它用于我的项目,而没有一个JavaScript错误或打h。而且它有很好的文档。

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

注意:尽管Dean Edwards的/ packer /的压缩率比YUI Compressor更好,但是在使用它时遇到了一些JavaScript错误。

在Dojo项目中使用ShrinkSafe-这是个例外,因为它实际上使用JavaScript解释器(Rhino)处理代码中的符号并了解其范围等,这有助于确保代码在出现时能正常工作。另一端,与许多使用regex进行压缩的压缩工具相反(不那么可靠)。

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

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

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

尝试JSMin,获得了C#,Java,C和其他端口,并且也很容易获得。

如果您使用Packer,则只需选择“缩小变量”选项并gzip压缩结果代码即可。仅当服务器无法发送压缩文件时,才使用base62选项。具有“收缩变量”的Packer可以更好地压缩YUI,但是如果您在某处跳过了分号,则可能会引入错误。

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

JSMin是另一个。

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

这是执行此操作的HttpHandler的源代码,也许会对您有所帮助

是一个YUI压缩器脚本(Byuic),它查找所有js并沿路径的css进行压缩,然后对/(可选)进行模糊处理。很高兴集成到构建过程中。

bananascript.com曾经给我最好的结果。

KJS压缩

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

Kjscompress / csskompress由两个应用程序(kjscompress一个csscompress)组成,用于从包含JavaScript和CSS的文件中删除不重要的空格和注释。两者都是GNU / Linux操作系统的命令行应用程序。

精简后,Js Crush是一个很好的压缩器。

本文地址:http://javascript.askforanswer.com/zuijiajavascriptyasuoqi.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!