4

私は現在、CSSファイルとJavaScriptファイルを縮小するためにantビルドプロセス中にYUIコンプレッサーを使用しています。各ファイルを縮小しながら、現在実行可能ファイルを適用しようとしているファイルの名前を出力して、エラーが発生した場合に、どのファイルがエラーの原因であるかがわかるようにします。例えば:

[echo] Minifying JS files...
[echo] Trying to minify file1.js...
[echo] Trying to minify file2.js....

私が見たすべての解決策は、apply命令がすべてのファイルに適用された後、ファイルセット内のすべてのファイル名をエコーするようです。

私のantビルドは現在次のようになっています。

<target name="minifyJS" depends="overwriteCSSWithMinified">
    <echo message="minifying js files and saving them to fileName-min.js" />
    <apply executable="java" parallel="false" dest="${toWebHome}">
        <fileset dir="${toWebHome}">
            <exclude name="**/*.min.js" />
            <include name="**/*.js"/>
         </fileset>
         <arg line="-jar"/>
         <arg path="yuicompressor-2.4.7.jar" />
         <arg line="-v"/>
         <srcfile/>
         <arg line="-o"/>
         <mapper type="glob" from="*.js" to="*-min.js"/>
         <targetfile/>
     </apply>
 </target>

ファイルセットを使用するのではなく、これを行う別の方法があるかもしれません。一度にすべてのファイルをループして、ファイルに適用を実行する命令を使用しますか?

4

1 に答える 1

1

このためには、 ant-contribを含める必要があります。次に、これを行うことができます:

<target name="minifyJS" depends="overwriteCSSWithMinified">
    <echo message="minifying js files and saving them to fileName-min.js" />
    <foreach target="yui" param="jsFile">
        <fileset dir="${toWebHome}">
            <exclude name="**/*.min.js" />  
                     <!-- should this be -min.js instead of .min.js ? -->
            <include name="**/*.js"/>
        </fileset>
    </foreach>
</target>

<target name="yui">
    <echo message="${jsFile}"/>
    <exec executable="java">
        <arg value="-jar"/>
        <arg value="yuicompressor-2.4.7.jar"/>
        <arg value="-v"/>
        <arg value="-o"/>
        <arg value="'.js$:-min.js'"/>
        <arg value="${jsFile}" />
    </exec>
</target>
于 2013-11-15T19:27:28.127 に答える