作者: 核桃博客 |
网址:
http://www.hetaoblog.com/javascript-compressor-ecmascript-cruncher/
本博客所有文章全部原创,欢迎转载,
但必须以超链接形式标明文章原始出处和作者信息及版权声明
关于javascript(js)压缩工具的使用,在之前的网站性能优化工具-javascript压缩工具JSMin, javascript 压缩工具-YUI-compressor, javascript 压缩工具Dojo compressor 分别介绍了JSMin, YUI-compressor和Dojo Compressor这3款比较流行的js压缩工具;
今天,再介绍一个有点小众的,ECMAScript Cruncher;我个人看到这个工具不是很喜欢,首先它只能在windows环境下用,而且提供的是ESC.wsf方式,直接搞个exe多方便,非要让我们多写一行命令,而且默认非得加上-ow,默认的压缩方式太简单,选择了最高级别第四层也不咋样。。
到这个地址下载ECMAScript Cruncher
http://sourceforge.net/projects/esc/
下载后,在命令行下输入
cscript ESC.wsf -ow output.js input.js
input.js就是你需要压缩的js源文件,output.js就是需要的输出文件,
这时,就会输出output.js;
ECMAScript Cruncher总共支持4层压缩率,默认是第二层,可以通过下面的方式指定为第三层或者第四层
cscript ESC.wsf -I 3 -ow output3.js input.js
cscript ESC.wsf -I 4 -ow output4.js input.js
我以在之前网站性能优化工具-javascript压缩工具JSMin中使用的JSMin的官方网站的样本程序作为input.js
var is = {
ie: navigator.appName == ‘Microsoft Internet Explorer’,
java: navigator.javaEnabled(),
ns: navigator.appName == ‘Netscape’,
ua: navigator.userAgent.toLowerCase(),
version: parseFloat(navigator.appVersion.substr(21)) ||
parseFloat(navigator.appVersion),
win: navigator.platform == ‘Win32′
}
is.mac = is.ua.indexOf(‘mac’) >= 0;
if (is.ua.indexOf(‘opera’) >= 0) {
is.ie = is.ns = false;
is.opera = true;
}
if (is.ua.indexOf(‘gecko’) >= 0) {
is.ie = is.ns = false;
is.gecko = true;
}
使用ECMAScript Cruncher压缩后,默认的第2层输出的output.js是
var is={
ie:navigator.appName==’Microsoft Internet Explorer’,
java:navigator.javaEnabled(),
ns:navigator.appName==’Netscape’,
ua:navigator.userAgent.toLowerCase(),
version:parseFloat(navigator.appVersion.substr(21))||
parseFloat(navigator.appVersion),
win:navigator.platform==’Win32′
}
is.mac=is.ua.indexOf(‘mac’)>=0;
if(is.ua.indexOf(‘opera’)>=0){
is.ie=is.ns=false;
is.opera=true;
}
if(is.ua.indexOf(‘gecko’)>=0){
is.ie=is.ns=false;
is.gecko=true;
}
这个压缩比YUI Compressor, Dojo Compressor和JSMin都差,行数仍然和输入的input.js一样是19行,只是一行里面的空格被去掉了,然后我换成第3层和第4层压缩,结果的输出几乎没变,仍然都是19行。
总而言之,我试用了这个后决定以后再也不看这个工具:)