9

Ant ビルド スクリプトで YUI Compressor を使用する方法を数日間検索した後、ようやく機能するようになりました。Ant タスクを作成し、それをビルド スクリプト内で使用するための多くの古い例 (<2010) が存在しますが、それは私にとってやり過ぎでした。

例の多くも古く、Ant や Ant タスクの構成に関するより深い知識が必要です。以下の解決策は、私にとって迅速で簡単で効果的なものです.

4

5 に答える 5

18

以下は、単一のディレクトリ内のすべて<target>の javascript ファイルを圧縮するために、タグの 1 つに追加されました。これらのファイルは元の名前のままです。CSS でこれを行うには、'js' を 'css' に切り替え、それに応じてパスを更新します。

これは YUI Compressor 2.4.7 で行われ、Ant ビルド スクリプトを Eclipse Juno で実行しました。クラス パスやその他の設定を変更する必要はありません。

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

この回答を改善してください。上記の解決策は私にとってはうまくいきますが、私は専門家ではありません。

于 2013-05-16T19:25:43.030 に答える
5

FileNotFoundException前の回答で得たので、次のソリューションを使用してファイルを縮小しています。

CSS を縮小するには、以下に置き換えjsますcss

<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>
于 2013-10-27T14:51:32.663 に答える
2

ビクターのコードを試しました。実際に必要な一時ディレクトリはありませんでした。私はこのコードを使用しましたが、うまくいきました。

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

于 2017-06-15T11:31:17.093 に答える
0

私はこの ant タスクを使用します: http://code.google.com/p/yui-compressor-ant-task/またはこれ: https://github.com/parambirs/ant-yui-compressor適用するより。

于 2014-08-12T18:24:47.593 に答える
0

一時フォルダーにコピーせずに、特定のフォルダーで使用可能なすべての Js ファイルを圧縮できます。

<property name="js.source" value="js/combine" />    
<property name="js.target" value="js/compress" />
<fileset dir="${yuicompressor.lib}">
        <include name="yui/yuicompressor-2.4.z8.jar"/>
</fileset>
<target name="minifyjs" description="compress the JS files">
    <delete includeEmptyDirs="true">
      <fileset dir="${js.target}" includes="**/*" defaultexcludes="no"/>
    </delete>
    <apply executable="java" parallel="false" verbose="true" failonerror="yes">
        <fileset dir="${js.source}" includes="**/*.js" excludes="**/*-min.js, **/*.min.js"/>
          <arg line="-jar"/>
          <arg path="${yuicompressor.lib}" />
          <srcfile/>
          <arg line="-o"/>
          <targetfile/>
          <mapper type="glob" from="*.js" to="${js.target}/*.js"/>
          <arg line="--charset"/>
          <arg line="utf-8"/>
    </apply>
</target>

上記のコードは私にとってはうまくいきます。

于 2018-05-02T05:45:56.710 に答える