我正在使用 phing 和 yui 压缩器自动执行一些任务,但遇到了内存问题。我很好奇是否有更好的方法来处理这个问题。
部分 phing 构建脚本
<target name="finalize">
<property name="cssfolders" value="folder1, folder2, folder3" />
<foreach list="${cssfolders}" param="dir" target="minifyCSS" />
<property name="jsfolders" value="folder1, folder2, folder3" />
<foreach list="${jsfolders}" param="dir" target="minifyJS" />
</target>
<target name="minifyCSS">
<exec command="find ${dir}/dev -name '*.css' -exec basename {} \; | while read file; do java -jar ${yuiCompressor} -o ${dir}/prod/$file ${dir}/dev/$file; done" />
</target>
<target name="minifyJS">
<exec command="find ${dir}/dev -name '*.js' -exec basename {} \; | while read file; do java -jar ${yuiCompressor} -o ${dir}/prod/$file ${dir}/dev/$file; done" />
</target>
如果我将 finalize 目标分成两个,一个用于 css,一个用于 js - 那么脚本将起作用。但是当我将它们结合在一起时,我遇到了问题。在每个人都说只拆分目标之前,我可以这样做,我担心随着更多 JS 文件的添加,我最终会再次遇到这个问题。
我很好奇是否有更好的方法来执行我的计划而无需持续监控和增加 php 的内存使用量。也许是一个更有效的命令来执行,或者使用一个 php 函数,如果我用尽分配的资源,它可以让我使用更多的内存或磁盘?
副项目 - 任何知道如何将缩小目标组合成一个的人的荣誉。它们实际上是相同的,只是我需要知道要为每个文件“查找”哪种类型的文件(css 或 js)。如果有一种方法可以处理这个只有一个目标 - 我想知道!:)