YUI api压缩 js/css


package com.jfinal.zwy.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;

import org.mozilla.javascript.ErrorReporter;
import org.mozilla.javascript.EvaluatorException;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;

import com.yahoo.platform.yui.compressor.CssCompressor;
import com.yahoo.platform.yui.compressor.JavaScriptCompressor;
public class Compress {
	//private static Logger log = LoggerFactory.getLogger(Compress.class);
	
	public static void main(String[] args) throws Exception{

		//字符串定位然后替换,然后拼接
		/*String str = "必须由字字字母、数字及字字下划线组成,请重新输入!";
		Pattern p = Pattern.compile("字字");
		Matcher matcher = p.matcher(str);
		StringBuffer sb = new StringBuffer("");
		while(matcher.find()) {
			String content = matcher.group(0);
			System.out.println(content);
			System.out.println(matcher.start() +":"+matcher.end());	
			matcher.appendReplacement(sb, "*******");
		}
		matcher.appendTail(sb);
		System.out.println(sb.toString());
		 */
		String root = "D:/workplace/exam_weixin/webapp";
		System.out.println(root);
		FileInputStream input = new FileInputStream(root +File.separator+"js"+File.separator+"wx.js");
		InputStreamReader in = new InputStreamReader(input,"UTF-8");
		//定义压缩文件
		JavaScriptCompressor compressor = new JavaScriptCompressor(in, new ErrorReporter() {
			public void warning(String message, String sourceName,
				  int line, String lineSource, int lineOffset) {
				if (line < 0) {
					//log.error("\n[WARNING] " + message);
				} else {
					//log.error("\n[WARNING] " + line + ':' + lineOffset + ':' + message);
				}
			}
			public void error(String message, String sourceName,
				  int line, String lineSource, int lineOffset) {
				if (line < 0) {
					//log.error("\n[ERROR] " + message);
				} else {
					//log.error("\n[ERROR] " + line + ':' + lineOffset + ':' + message);
				}
			}
			public EvaluatorException runtimeError(String message, String sourceName,
				  int line, String lineSource, int lineOffset) {
				error(message, sourceName, line, lineSource, lineOffset);
				return new EvaluatorException(message);
			}
		});
		Writer out = new OutputStreamWriter(new FileOutputStream(root +File.separator+"js"+File.separator+"wx-min.js"));
		// nomunge: 混淆,verbose:显示信息消息和警告,preserveAllSemiColons:保留所有的分号 ,disableOptimizations 禁止优化
		boolean munge = true, verbose = false, preserveAllSemiColons = false, disableOptimizations = false;
		//进行js压缩
		compressor.compress(out , -1, munge, verbose, preserveAllSemiColons, disableOptimizations);
		out.close();
		in.close();
		
		//Css压缩
		FileInputStream cssInput = new FileInputStream(root +File.separator+"css"+File.separator+"bootstrap.css");
		InputStreamReader cssIn = new InputStreamReader(cssInput,"UTF-8");
		CssCompressor cssCompress = new CssCompressor(cssIn);
		Writer cssOut = new OutputStreamWriter(new FileOutputStream(root +File.separator+"css"+File.separator+"style-min.css"));
		//进行css压缩
		cssCompress.compress(cssOut, -1);
		cssOut.close();
		cssInput.close();
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值