![](/img/trans.png)
[英]importing html file (and all the stylesheets and scripts) with javascript?
[英]Ant Task: Copy all scripts used in HTML File to a directory and compress
我目前正在尝试创建应执行以下操作的ANT build.xml:
查找HTML文件中所有<script src =“ foo.js”>标记的出现。 使用该脚本文件的src属性,并将相应的js文件复制到临时目录。 然后将目录中的所有脚本串联起来,以便有一个大脚本。 最后压缩脚本(使用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>
到目前为止,buildscript将从文件if.html获取所有javascripts路径。 我将在文件夹“ $ {output.dir} / js / temp”中创建一个文件if.html,并将所有路径放在其中。 但这不是我想要的。 我希望所有脚本文件都复制到“ $ {output.dir} / js / temp”中,以便在下一步进行合并。
谢谢你的帮助!
问候
因此,最后我通过使用名为“ ant-contrib”的ANT插件使其工作。 这增加了在ANT脚本中使用for循环的可能性。
<loadfile property="file" srcfile="${output.dir}/js/temp/if.html"/>
<for param="line" list="${file}" delimiter="${line.separator}">
<sequential>
<concat destfile="${output.dir}/js/application.js" append="true">
<fileset dir="${src.dir}" includes="@{line}" />
</concat>
<echo message="Adding js ${src.dir}/@{line}"/>
</sequential>
</for>
现在,我可以遍历文件的每一行(每一行都是js文件的路径),并将文件内容附加到主application.js。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.