私は現在、次のことを行うANT build.xmlを作成しようとしています:
HTML ファイル内で出現する <script src="foo.js"> タグをすべて検索します。そのスクリプト ファイルの src 属性を取得し、対応する js ファイルを一時ディレクトリにコピーします。次に、1 つの大きなスクリプトになるように、ディレクトリ内のすべてのスクリプトを連結します。最後に、スクリプトを圧縮します (YUI コンプレッサーを使用)。私は ANT ビルドの経験はあまりありませんが、これが私がこれまでにやってきた方法です。
<target name="concat">
<copy todir="${output.dir}/js/temp">
<fileset dir="${src.dir}">
<include name="if.html"/>
</fileset>
<filterchain>
<linecontainsregexp>
<regexp pattern="script.*src="(.*?)"" />
</linecontainsregexp>
<tokenfilter>
<replaceregex pattern=".*<script.*src="(.*?)">.*" replace="\1" />
</tokenfilter>
</filterchain>
</copy>
<concat destfile="${output.dir}/js/application.js">
<fileset dir="${output.dir}/js/temp" includes="*.js" />
</concat>
</target>
これまで、ビルドスクリプトはファイル if.html からすべての JavaScript パスを取得していました。「${output.dir}/js/temp」フォルダーにファイル if.html を作成し、そこにすべてのパスを配置します。しかし、これは私が望むものではありません。すべてのスクリプト ファイルを「${output.dir}/js/temp」にコピーして、次のステップでそれらを連結できるようにします。
助けてくれてありがとう!
よろしく