使用YUI+Ant 实现JS CSS压缩


Posted in PHP onSeptember 02, 2014

今天研究了一下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 
liblib = 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 ################################################ 
echo Please make sure your css and js in the css'directory and js'directory. 
echo If sure,please enter any button to continue the tool. 
pause 
call ant -buildfile compress.xml compress>build.log 
echo compress end  
pause

 
 相关的文件我提供下载,感觉好的,就留言吧

PHP 相关文章推荐
PHP 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
PHP简洁函数小结
Aug 12 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
php替换字符串中间字符为省略号的方法
May 04 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 #PHP
PHP高级编程实例:编写守护进程
Sep 02 #PHP
php输入流php://input使用浅析
Sep 02 #PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 #PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 #PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 #PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 #PHP
You might like
基于PHP静态类的原罪详解
2013/05/06 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
php中Snoopy类用法实例
2015/06/19 PHP
js获取变量
2006/08/24 Javascript
JavaScript 数组运用实现代码
2010/04/13 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
python:print格式化输出到文件的实例
2018/05/14 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
意向书范文
2014/03/31 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
个人授权委托书
2014/09/15 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
学术会议通知范文
2015/04/15 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
文艺演出主持词
2015/07/01 职场文书
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python
React更新渲染原理深入分析
2022/12/24 Javascript