非常流行的javascript压缩工具YUI compressor,可以提供更好的压缩效率;该工具由著名的Yahoo Exceptional Performance项目组出品。如果需要实现更多静态资源的处理,可以使用google的pagespeed。
1 linux 下面使用yuiCompressor
1.1 环境配置
1)安装java环境
2)下载yuiCompressor
地址:http://yuilibrary.com/projects/yuicompressor/,下载完后用ant -f build.xml 编译 yuicompressor.jar;或者到maven库下载。
将yuicompressor.jar放在任意目录,比如/home/make/yuiCompressor/yuicompressor.jar
1.2 使用YuiCompressor
例子:java -jar /home/make/yuiCompressor/yuicompressor.jar old.js > new.js
在命令行中 输入 java -jar yuicompressor-2.4.2.jar --help会有提示信息,当然,当前目录下必须有yuicompressor-2.4.2.jar
Usage:java -jar yuicompressor-x.y.z.jar [options] [input file]
GlobalOptions 全局选项:
-h,--help Displays this information 帮助信息
--type<js|css> Specifies the type of the input file 压缩类型
--charset<charset> Read the input file using <charset> 文件使用的字符集编码
--line-break<column> Insert a line break after the specified column number 在一个指定的列数之后插入一个换行(一般是不需要的)
-v,--verbose Display informational messages and warnings 显示详细信息和警告信息
-o<file> Place the output into <file>. Defaults to stdout. 输出文件,默认为标准输出
JavaScriptOptions JS特有选项
--nomungeMinify only, do not obfuscate 仅压缩,不混淆
--preserve-semiPreserve all semicolons 保留所有的分号
--disable-optimizationsDisable all micro optimizations 禁用自带的所有优化措施
1.3 linux批量shell脚本编写
1)创建yuiCom.sh批量脚本
# vi yuiCom.sh
ROOTFORMPATH=$1
ROOTTOPATH=$2
function read_dir() {
#判断文件夹是否存在
if [ ! -d $2 ]; then
mkdir $2
echo "create filePath:"$2
fi
for file in `ls $1`
do
#判断是否是文件夹
if [ -d $1"/"$file ]; then
read_dir $1"/"$file $2"/"$file
else
if [ "min.js" = "${file:0-6:6}" ]; then
cp $1"/"$file $2"/"$file
echo "copy min.js:"$1"/"$file
elif [ "min.css" = "${file:0-7:7}" ]; then
cp $1"/"$file $2"/"$file
echo "copy min.css:"$1"/"$file
elif [ "js" = "${file##*.}" ]; then
java -jar /data/home/make/yuiCompressor/yuicompressor.jar --type js --charset utf-8 $1"/"$file -o $2"/"$file
echo "yuiCompressor js:"$1"/"$file
elif [ "css" = "${file##*.}" ]; then
java -jar /data/home/make/yuiCompressor/yuicompressor.jar --type css --charset utf-8 $1"/"$file -o $2"/"$file
echo "yuiCompressor css:"$1"/"$file
else
cp $1"/"$file $2"/"$file
echo "copy file:"$1"/"$file
fi
fi
done
}
echo "clean filePath:"$ROOTTOPATH
rm -rf $ROOTTOPATH
read_dir $ROOTFORMPATH $ROOTTOPATH
注:其中ROOTFORMPATH为需要压缩的js、css目录,ROOTTOPATH为输出目录
2)运行命令使yui.sh可执行
# chmod +x/home/make/yuiCompressor/yuiCom.sh
3)建立链接
# sudo ln -s/home/make/yuiCompressor/yuiCom.sh /usr/bin/yuiCom
4)使用方法
# yuiCom /home/make/yuiCompressor/old /home/make/yuiCompressor/new
maven打包压缩:http://blog.csdn.net/huanglgln/article/details/71508403
eclipse插件安装:http://blog.csdn.net/huanglgln/article/details/71511799