压缩javascript和css文件的yui-compressor如何工作?

时间:2012-11-16 07:31:14

标签: javascript css yui-compressor

我很想知道像yui-compressor这样的压缩器如何压缩js或css文件,如果我想编写自己的压缩器,我需要采取哪些步骤。

3 个答案:

答案 0 :(得分:2)

  

YUI Compressor是用Java编写的(需要Java> = 1.4)和   依靠Rhino来标记源JavaScript文件。它开始于   分析源JavaScript文件以了解它是如何的   结构化的。然后打印出令牌流,省略多个   尽可能使用空白字符,并替换所有本地符号   这样的替换所在的字母符号为1(或2或3)   适当的(面对邪恶的特征,如eval或with,the   YUI Compressor采取防御措施,不会混淆任何一个   包含邪恶语句的范围)CSS压缩   algorithm使用一组精细调整的正则表达式进行压缩   源CSS文件。 YUI压缩器是开源的,所以不要   不愿意查看代码以了解它是如何工作的。

来源:http://developer.yahoo.com/yui/compressor/#work

答案 1 :(得分:1)

来自官方文档网站

YUI Compressor如何工作? YUI Compressor是用Java编写的(需要Java> = 1.4)并依赖Rhino来标记源JavaScript文件。它首先分析源JavaScript文件,以了解它的结构。然后它打印出令牌流,省略尽可能多的空白字符,并用适当的替换(在eval等邪恶特征面前)用1(或2或3)字母符号替换所有本地符号或者,YUI Compressor通过不混淆包含邪恶语句的任何范围来采取防御性方法.CSC压缩算法使用一组精细调整的正则表达式来压缩源CSS文件。 YUI Compressor是开源的,所以请不要犹豫,查看代码,了解它是如何工作的。“

这里的Css压缩代码 https://github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/yui/compressor/CssCompressor.java

这里有Js压缩代码 https://github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/yui/compressor/JavaScriptCompressor.java

答案 2 :(得分:0)

我知道这些是主要步骤:

  • 删除所有额外空间(解析器不需要它们)
  • 删除回车符(解析器也不需要它们)

对于JS

  • 替换新的变量名称更短,当然是唯一的

编辑:有一个好主意的最简单方法实际上是创建一个CSS和JS,并在压缩后看到差异。