How to use YUI Compressor in Ant build script for javascript

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-06 11:45:51

问题


I have ANT script which compresses .js files into their own files, but i want to compress all .js files into one .js file.

How to make it work using below ANT script.

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

回答1:


After a long search I got solution, basically after yui compress i have to do concat on all compressed file.

Use :

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


来源:https://stackoverflow.com/questions/16748566/how-to-use-yui-compressor-in-ant-build-script-for-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!