ant+yuicompressor 合并、压缩脚本与样式
时间:2022-06-14
本文章向大家介绍ant+yuicompressor 合并、压缩脚本与样式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
我使用的是Eclipse编写build.xml,你可以用其它的编辑器,前提是你已经安装了ant
将js目录下的所有.js合并为一个all.js,调用yuicompressor压缩成一个core.js文件。
<?xml version="1.0" encoding="UTF-8"?>
<project name="Javascritp_build" default="clean" basedir="../">
<description>Javascritp build for Ant</description>
<property name="src" location="js"/>
<property name="build" location="build"/>
<property name="target" location="result"/>
<property name="lib" location="lib"/>
<property name="charset" value="utf-8"/>
<!-- - - - - - - - - - - - - - - - - -
这个 ant 配置文件要经过4个流程:
1、target init 进行初始化处理,创建一个目录build,用于暂存文件;
2、target concat 合并两个 js 文件,放到 build 目录下;
3、target compress 调用 Yui Compressor 对合并后的 js 进行压缩
4、target clean 进行清理动作,删除生成的 build 目录
ANT标签和属性解释:
project 的 default 对应某个 target 的 name 值,表示默认执行哪个步骤;
target 的 depends 对应其他某些 target 的 name 属性,表示依赖性;
${name} 可以引用 property 中定义的值。
mkdir 标签创建一个目录
replaceregexp, 正则表达式替换,将DEBUG标识替换为空,在正式环境不处理DEBUG信息
注意设置文件的 encoding 属性,否则可能有乱码情况
关于ANT的详细文档,请看官方手册:http://ant.apache.org/manual/
- - - - - - - - - - - - - - - - - -->
<target name="init">
<mkdir dir="${build}" />
</target>
<target name="concat" depends="init">
<concat destfile="${build}/all.js" encoding="${charset}" outputencoding="${charset}">
<path path="${src}/core.js" />
<path path="${src}/g.js" />
<path path="${src}/nav.js" />
</concat>
<!-- - - - - - - - - - - - - - - - - -
replaceregexp的说明 http://ant.apache.org/manual/Tasks/replaceregexp.html
- - - - - - - - - - - - - - - - - -->
<replaceregexp match="DEBUG" replace="" flags="g" byline="true" file="${build}/all.js" encoding="${charset}" />
</target>
<!-- - - - - - - - - - - - - - - - - -
YUICompressor参数 http://developer.yahoo.com/yui/compressor/#work
通用参数:
-h, --help 显示帮助信息
--type <js|css> 指定输入文件的文件类型
--charset <charset> 指定读取输入文件使用的编码
--line-break <column> 在指定的列后插入一个 line-bread 符号
-v, --verbose 显示info和warn级别的信息
-o <file> 指定输出文件。默认输出是控制台。
JavaScript专用参数:
--nomunge 只压缩, 不对局部变量进行混淆。
--preserve-semi 保留所有的分号。
--disable-optimizations 禁止优化。
- - - - - - - - - - - - - - - - - -->
<target name="compress" depends="concat">
<echo message="start compress" />
<java jar="${lib}/yuicompressor-2.4.2.jar" fork="true" failonerror="false">
<arg line="--type js --charset ${charset} --nomunge ${build}/all.js -o ${target}/core.js" />
</java>
<echo message="end compress" />
</target>
<target name="clean" depends="compress">
<delete dir="${build}"/>
</target>
</project>
右击build.xml,然后选中Run As ---> Ant build,如果运行成功,控制台上将出现如下的信息:
Buildfile: C:Java_appJavaTestWebRootWEB-INFant-buildbuild.xml init: [mkdir] Created dir: C:Java_appJavaTestWebRootWEB-INFbuild concat: compress: [echo] start compress [echo] end compress clean: [delete] Deleting directory C:Java_appJavaTestWebRootWEB-INFbuild BUILD SUCCESSFUL Total time: 1 second
可以看这里了解关于ant+JSLint的使用 www.rabbler.org/archives/40
- 谈谈基于OAuth 2.0的第三方认证 [上篇]
- 我所理解的RESTful Web API [Web标准篇]
- ASP.NET Web API中的Controller
- iOS 转场动画探究(二)
- Swift 面向对象解析(二)
- 谈谈基于OAuth 2.0的第三方认证 [中篇]
- [ASP.NET Web API]如何Host定义在独立程序集中的Controller
- ASP.NET Web API自身对CORS的支持: EnableCorsAttribute特性背后的故事
- 【黑客解析】黑客是如何实现数据库勒索的 ?
- 直播回看:高可用架构入门 —— 腾讯云架构演变及经验
- 【腾讯云的1001种玩法】十分钟轻松搞定云架构之一 :从上云开始
- 【腾讯云的1001种玩法】十分钟轻松搞定云架构之二:更好的网络
- 【腾讯云的1001种玩法】十分钟轻松搞定云架构之三:更大的存储
- Socket学习总结系列(一) -- IM & Socket
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 全网最详细的 K8s Service 不能访问排查流程
- 团体程序设计天梯赛-练习集 L1-001 Hello World
- 团体程序设计天梯赛-练习集 L1-002 打印沙漏
- 团体程序设计天梯赛-练习集 L1-003 个位数统计
- 团体程序设计天梯赛-练习集 L1-004 计算摄氏温度
- 团体程序设计天梯赛-练习集 L1-007 念数字
- 团体程序设计天梯赛-练习集 L1-008 求整数段和
- K8s多租户场景下的多层级namespace规则解析
- 团体程序设计天梯赛-练习集 L1-010 比较大小
- 团体程序设计天梯赛-练习集 L1-012 计算指数
- 团体程序设计天梯赛-练习集 L1-013 计算阶乘和
- 团体程序设计天梯赛-练习集 L1-036 A乘以B
- 团体程序设计天梯赛-练习集 L1-015 跟奥巴马一起画方块
- 团体程序设计天梯赛-练习集 L1-011 A-B
- vuepress引入vue-qr组件后build报错navigator is not defined问题