日期:2014-05-17  浏览次数:20652 次

YUI+Ant 实现JS CSS压缩

今天研究了一下YUI yahoo开源框架,感觉很猛啊。

于是乎我做了一个YUI的ant实现,网上好多关于bat的实现,我就另辟蹊径,出个关于这个的ant实现,嘿嘿独一无二的文章,如果转载的话,其注明作者和网站

copyright:Mr.chen

好了具体操作如下:

官网:

yuicompressor-2.4.6.jar 下载地址 http://yuilibrary.com/downloads/#yuicompressor

YUIAnt.jar 下载地址 http://www.ubik-ingenierie.com/miscellanous/YUIAnt/

具体的相关代码如下:

#css work dir
commonCss.dir = css

#js work dir
commonJs.dir = js

#build temp dir 
output.temp.dir = build

#output files in the directory
output.dir = ${output.temp.dir}_output

#environment needs lib
lib = lib
?
<?xml version="1.0" encoding="UTF-8"?>

<project name="Compress CSS-JS" default="compress" basedir=".">

	<property file="bulid.properties" />

	<path id="yuiClasspath">
		<fileset dir="${lib}">
			<include name="*.*" />
		</fileset>
	</path>

	<!-- #######################Init the environment of the tool ##########################-->
	<target name="init">
		<echo message="begin to init the init" />
		<echo message="delete all reference files." />
		<delete dir="${output.dir}" />
		<echo message="delete end" />
		<echo message="make the reference files." />
		<mkdir dir="${output.dir}" />
		<mkdir dir="${output.temp.dir}" />
		<echo message="make end." />
	</target>

	<!-- #######################Combine the css files             ##########################-->
	<target name="combinecss" depends="init" description="Combine common css files">
		<echo message="begin to combine the css files to one file." />
		<concat destfile="${output.temp.dir}/combined_css.css" encoding="UTF-8" append="false">
			<fileset dir="${commonCss.dir}">
				<include name="*.css" />
			</fileset>
		</concat>
		<echo message="combine end." />
	</target>

	<!-- #######################Combine the js files             ##########################-->
	<target name="combinejs">
		<echo message="begin to combine the js files to one file." />
		<concat destfile="${output.temp.dir}/all_source.js" encoding="utf-8" append="false">
			<fileset dir="${commonJs.dir}">
				<include name="*.js" />
			</fileset>
		</concat>
		<echo message="combine end." />
	</target>

	<!-- #######################Compress the js and css files  ##########################-->
	<target name="compress" depends="combinecss,combinejs" description="Compress">
		<echo message="begin to compress the css file." />
		<taskdef name="yuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask">
			<classpath>
				<path refid="yuiClasspath" />
			</classpath>
		</taskdef>
		<!-- first method compress the css files -->
		<yuicompress linebreak="10000000" warn="false" munge="yes" preserveallsemicolons="true" outputfolder="${output.dir}">
			<fileset dir="${output.temp.dir}">
				<include name="*.css" />
			</fileset>
		</yuicompress>
		<echo message ="compress the css end." />
		<!-- second method compress the js files-->
		<echo message ="begin to compress the js file." />
		<apply executable="java" parallel="false" failonerror="true">
			<fileset dir="${output.temp.dir}" includes="all_source.js" />
			<arg line="-jar" />
			<arg path="${lib}/yuicompressor-2.4.6.jar" />
			<arg line="--charset utf-8" />
			<arg line="-o ${output.dir}/combined_js.js" />
			<srcfile />
		</apply>
		<echo message ="compress the js end." />
		<delete dir="${output.temp.dir}" />
	</target>

</project>
?
@echo off
echo ################################################
echo ##########Tool Compress the js and css##########
echo ###