首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在用于javascript和css的Ant构建脚本中使用YUI压缩器

如何在用于javascript和css的Ant构建脚本中使用YUI压缩器
EN

Stack Overflow用户
提问于 2013-05-16 19:25:43
回答 5查看 13.1K关注 0票数 9

在寻找如何在Ant构建脚本中使用YUI Compressor几天之后,我终于让它正常工作了。有许多旧的示例(<2010)用于创建Ant任务并在构建脚本中使用该任务,但这对我来说有点过头了。

许多示例也很陈旧,需要更多关于Ant或配置Ant任务的知识。下面的解决方案对我来说是快速、简单和有效的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-16 19:25:43

下面的代码被添加到我的一个<target>标签中,用来在一个压缩的目录中所有的javascript文件。这些文件将保留其原始名称。要对CSS执行此操作,只需将'js‘切换为'css’并相应地更新路径。

这是使用YUI Compressor 2.4.7完成的,我在Eclipse Juno中运行Ant构建脚本,而无需更改类路径或其他设置。

代码语言:javascript
运行
AI代码解释
复制
<!-- Minimizing Javascript files -->
    <echo message="Compressing Javascript files at location: ${build.root}/resources/js/*.js" />
    <java jar="c:/dev/lib/yuicompressor-2.4.7/build/yuicompressor.jar" fork="true">
        <arg value="${build.root}/resources/js/*.js" /> <!-- input path for JS files -->
        <!--<arg value="-v" /> --><!-- Turn on verbose -->
        <arg value="-o" />
        <arg value="'.js$:.js'" />
        <arg value="${build.root}/resources/js/*.js" /> <!-- output path for JS files -->
        <classpath>
            <pathelement location="c:/dev/lib/yuicompressor-2.4.7/build/yuicompressor.jar"/>
        </classpath>
    </java>

请随时改进这个答案。上面的解决方案对我有效,但我不是专家。

票数 18
EN

Stack Overflow用户

发布于 2013-10-27 14:51:33

我使用下面的解决方案来缩小文件,因为我得到了带有上一个答案的FileNotFoundException

要缩小CSS,请用下面的css替换js

代码语言:javascript
运行
AI代码解释
复制
<target name="compress" description="compress the JS files">
    <copy todir="temp/js" overwrite="yes">
        <fileset dir="original/js"/>
    </copy>
    <apply executable="java" parallel="false" dest="temp/js">
        <fileset dir="temp/js" includes="**/*.js" />
          <arg line="-jar"/>
          <arg path="test_lib/yuicompressor-2.4.8.jar" />
          <arg line="-v"/>
          <srcfile/>
          <arg line="-o"/>
          <mapper type="glob" from="*.js" to="*-min.js"/>
          <targetfile/>
    </apply>
    <move todir="original/js" overwrite="true">
        <fileset dir="temp/js" />
        <mapper type="glob" from="*-min.js" to="*.js"/>
    </move>
</target>
票数 5
EN

Stack Overflow用户

发布于 2017-06-15 11:31:17

我试过维克多的代码。实际上并不需要临时目录。我使用了这段代码,它对我很有效。

代码语言:javascript
运行
AI代码解释
复制
    <apply executable="java" parallel="false" >
                <fileset dir="${build.root}/resources/js" includes="**/*.js" />
                    <arg line="-jar"/>
                    <arg path="${basedirectory}/yuicompressor-2.4.8.jar" />
                    <srcfile/>
                    <arg value="-o" />
                    <arg value="'.js$:.js'" />
                    <!-- output path for JS files -->
                    <arg value="${build.root}/resources/js/*.js" />
                    <arg line="--nomunge" />
                    <arg line="--preserve-semi" />              
            </apply>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16595802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档