首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

java Ant+yuicompressor批量压缩搅混js,css

2014-01-15 
java Ant+yuicompressor批量压缩混淆js,css?需要先下载 yuicompressoryuicompressor-2.4.8.jar 下载地址ht

java Ant+yuicompressor批量压缩混淆js,css

?

需要先下载 yuicompressor

yuicompressor-2.4.8.jar 下载地址

http://yui.github.io/yuicompressor/

https://github.com/yui/yuicompressor/releases

?

2.4.8似乎有bug

用ant使用时报

[apply] java.io.FileNotFoundException: workspaceProjectNameWebContentstaticdestjscommon.js:\workspace\ProjectName\WebContent\static\js\common.js

其实他是说目标目录不存在。

?

用2.4.7,2.4.6则没问题

yuicompressor-2.4.7.jar 下载地址

http://ishare.iask.sina.com.cn/f/25474581.html

下载后提取jar

?

java样例

java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.js --charset utf-8

说明

http://yui.github.io/yuicompressor/

java -jar yuicompressor-x.y.z.jar
Usage: java -jar yuicompressor-x.y.z.jar [options] [input file]

?

?通用参数:?
? -h, --help???????????????????? 显示帮助信息
? --type <js|css>???????????? 指定输入文件的文件类型
? --charset <charset>???? 指定读取输入文件使用的编码
? --line-break <column>?在指定的列后插入一个 line-bread 符号
? -v, --verbose???????????????显示info和warn级别的信息
? -o <file>?????????????????????? 指定输出文件。默认输出是控制台。??
JavaScript专用参数:?
? --nomunge????????????????? 只压缩, 不对局部变量进行混淆。?
??--preserve-semi???????????保留所有的分号。?
??--disable-optimizations??? 禁止优化。

?

批量按目录树压缩

<?xml version="1.0" encoding="utf-8"?><project name="compress" basedir="../" default="yui-compress"> <!--属性--><property name="yuicompressor-jar" value="${basedir}/build/yuicompressor-2.4.7.jar" /><property name="JS_HOME" value="${basedir}/WebContent/static/js"/>    <property name="JS_COMPRESSED_HOME" value="${basedir}/WebContent/static/js_compress"/> <!--复制目录及文件--><target name="copy"><copy todir="${JS_COMPRESSED_HOME}" includeEmptyDirs="true" overwrite="true" preservelastmodified="true">    <!--复制目录树--><fileset dir="${JS_HOME}" >    <exclude name="**/*.*" /></fileset><!--复制其他文件--><fileset dir="${JS_HOME}" >    <include name="**/*.min.js" />    <include name="**/*.swf" /></fileset></copy></target><!--压缩js--><target name="yui-compress" depends="copy"> <apply executable="java" parallel="false" verbose="true" dest="${JS_COMPRESSED_HOME}" > <fileset dir="${JS_HOME}">             <include name="**/*.js" />             <exclude name="**/*.min.js" />         </fileset><arg line="-jar"/><arg path="${yuicompressor-jar}" /><arg line="--type js --charset UTF-8 -o" /> <mapper type="glob" from="*.js" to="*.js" /><targetfile /></apply></target> </project>

?

注:目标目录必须存在,否则会报错。因此先复制出了文件夹

?

注意事项

有人说 js中不要有i--中的--,说是会当做注释,我试了,好像没问题。

其他,

声明变量时写上 var

语句结尾写上分号;

?

其他说明

[1].-v参数不是必需的,但建议加上,方便查看一些WARNING信息;
[2].--charset参数不是必需的,但建议加上,YUI Compressor有时并不那么智能;
[3].YUI Compressor不会混淆全局变量名;
[4].养成好的编码习惯,变量尽量一次声明完毕(每个作用域只用一次var),否则会看类似的提示:

[WARNING] Try to use a single 'var' statement per scope.
msg(){var aaa=1; ---> var? <--- bbb=2;alert(aaa+bbb)

?

?

压缩过一遍以后,如果文件没改变,他就不压缩了,

如果改变了一个文件,他会压缩那一个文件

?

压缩css的方法和压缩js的方法很类似,改改就行了。

?

谷歌的Google Closure Compiler也能压缩js,但好像压缩不了js

?

多个js还可以合并

使用ANT对Js/Css文件进行合并和压缩处理

http://www.blogbus.com/lds2008-logs/115112756.html

?

热点排行