【问题标题】:How to use YUI Compressor in Ant build script for javascript如何在 Ant 的 JavaScript 构建脚本中使用 YUI Compressor
【发布时间】:2013-05-20 20:34:54
【问题描述】:

我有将 .js 文件压缩成自己的文件的 ANT 脚本,但我想将所有 .js 文件压缩成一个 .js 文件。

如何使用下面的 ANT 脚本使其工作。

<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>

【问题讨论】:

    标签: javascript ant build build-process yui-compressor


    【解决方案1】:

    经过长时间的搜索,我得到了解决方案,基本上在 yui compress 之后我必须对所有压缩文件进行 concat。

    使用:

        <concat destfile="build/*.js">
            <fileset dir="build/*" includes="*js" />
        </concat>
    

    【讨论】:

      【解决方案2】:
      <target name="minify" description="Minifiy a set of files">
          <available file="build-lib/YUIAnt.jar" property="YUIANT_AVAILABLE" />
          <fail unless="YUIANT_AVAILABLE" message="Run jar target to generate the required task" />
          <taskdef name="yuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask">
              <classpath>
                  <pathelement path="build-lib/yuicompressor-2.4.2.jar" />
                  <pathelement path="build-lib/YUIAnt.jar" />
              </classpath>
          </taskdef>
          <mkdir dir="dist\js" />
          <yuicompress linebreak="300" warn="false" munge="yes" preserveallsemicolons="true" outputfolder="${dist}">
              <fileset dir="WebRoot">
                  <include name="**/*.js" />
                  <exclude name="**/jquery.js" />
              </fileset>
          </yuicompress>
          <yuicompress linebreak="300" warn="false" munge="yes" preserveallsemicolons="true" outputfolder="${dist}">
              <fileset dir="WebRoot/">
                  <include name="**/*.css" />
              </fileset>
          </yuicompress>
      </target>
      

      【讨论】:

      • 这并不能解决问题。问题不在于 OP 不知道如何压缩文件,而是他们想要压缩 组合。这个答案所做的就是使用 yui-ant 进行压缩,而不是直接使用 yuicompressor。
      猜你喜欢
      • 2013-05-11
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 2010-11-12
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      相关资源
      最近更新 更多