最佳JavaScript压缩器
可用的最佳JavaScript压缩器是什么?我正在寻找一种工具:最佳JavaScript压缩器,javascript,compression,Javascript,Compression,可用的最佳JavaScript压缩器是什么?我正在寻找一种工具: 很容易使用 具有高压缩率 产生可靠的最终结果(不会弄乱代码) 是一条路要走。它有一个伟大的压缩率,经过良好的测试,并在许多顶级网站使用,嗯,我个人推荐 我在我的项目中使用了它,没有一个JavaScript错误或问题。它有很好的文档 我从未使用过它的CSS压缩功能,但它们也存在。CSS压缩也同样有效 注意:尽管Dean Edwards的//比YUI Compressor实现了更好的压缩率,但我在使用它时遇到了一些JavaScrip
- 很容易使用
- 具有高压缩率
- 产生可靠的最终结果(不会弄乱代码)
- 原始jQuery库62885字节,gzip后19758字节
- jQuery缩小为JSMin 36391字节,gzip后为11541字节
- jQuery使用打包器21557字节缩小,gzip后11119字节
- jQuery使用YUI压缩器缩小了31822字节,gzip之后是10818字节
- 是一条路要走。它有一个伟大的压缩率,经过良好的测试,并在许多顶级网站使用,嗯,我个人推荐
我在我的项目中使用了它,没有一个JavaScript错误或问题。它有很好的文档
我从未使用过它的CSS压缩功能,但它们也存在。CSS压缩也同样有效
注意:尽管Dean Edwards的//比YUI Compressor实现了更好的压缩率,但我在使用它时遇到了一些JavaScript错误。是另一个错误。试试,得到了C#、Java、C和其他端口,并且也很容易使用。一个HttpHandler,它做到了这一点,也许会帮助你几年后重新审视这个问题,似乎是目前最好的选择 如下所述,它在NodeJS平台上运行,但可以轻松修改以在任何JavaScript引擎上运行 ---下面是老答案--- 谷歌发布的这一版本似乎是迄今为止所看到和发现的最小的文件 在此之前,请选择各种选项 基本上,在初始压缩时做得更好,但是如果您要在发送文件之前对文件进行gzip处理(您应该这样做),则会得到最小的最终大小 测试是在jQuery代码btw上完成的
编辑:值得注意的是,YUI压缩器也使用Rhino。是一个YUI压缩器脚本(),它查找路径上的所有js和css并压缩/(可选)使它们混淆。很高兴集成到构建过程中。如果您使用Packer,只需使用“收缩变量”选项并gzip生成的代码即可。base62选项仅适用于服务器无法发送Gzip文件的情况。带有“收缩变量”的打包器可以更好地压缩YUI,但如果您跳过了某个分号,则可能会引入错误
base62基本上是穷人的gzip,这就是为什么gzipping base62 ed代码比gzipping shrink var ed代码提供更大的文件。用于提供最佳结果。KJScompress Kjscompress/csskompress是一组两个 应用程序(KJSA) csscompress)以删除不重要的 文件中的空白和注释 包含JavaScript和CSS。二者都 是用于 GNU/Linux操作系统 在寻找银弹时,发现了这个 问题。用于RubyonRails 我最近发布了一个JavaScript压缩器,它是用JavaScript编写的(运行在NodeJS平台上,但它可以很容易地修改为运行在任何JavaScript引擎上,因为它不需要任何
Node.js
内部)。它比两者都要快得多,而且比我测试的所有脚本都要压缩,而且比闭包更安全(知道如何处理“eval”或“with”)
除了删除空白,UglifyJS还执行以下操作:
- 更改局部变量名称(通常为单个字符)
- 连接连续的var声明
- 避免插入任何不必要的括号、括号和分号
- 优化IFs(在检测到不需要时删除“else”,在可能的情况下将IFs转换为&、|或?/:运算符等)
- 尽可能将
转换为foo[“bar”]
foo.bar
- 尽可能从对象文字中的键中删除引号
- 当这导致代码更小时解析简单表达式(1+3*4==>13)
附言:哦,它还可以“美化” 是一个很好的压缩程序,可以在缩小后使用。Packer有一个关闭“base62 encode”的选项,对于jQuery,它在gzip后压缩的比yui小。这是因为jquery使用“eval”和“with”,这会阻止“safe”压缩器进行某些压缩,但packer会忽略它们。一般来说不安全,但jQuery是针对Packer进行测试的。另外,如果你不相信我,请尝试一下。不要忘记Packer的缺点——解压时间。请注意,google closure有时可能是最糟糕的压缩器(输出甚至比原始的还要大)——它默认情况下会将字符串中的非ascii字符转换为
\uxxx
文本。。例如,使用--charset UTF-8
(如果您确定以某种方式让浏览器知道),ClosureCompiler输出对我不起作用。worksPacker在文件大小方面看起来不错,但事实证明,解包所花费的时间通常超过了通过管道传输较小文件所获得的时间。大多数实际的浏览器工作台