13

YUI Compressor不接受通配符参数,所以我不能这样运行它:

C:>java -jar yuicompressor.jar *.js

但我有超过 500 个文件,不想像这样创建批处理文件:

C:>java -jar yuicompressor.jar file1.js -o deploy\file1.js
C:>java -jar yuicompressor.jar file2.js -o deploy\file2.js
...
C:>java -jar yuicompressor.jar file500.js -o deploy\file500.js

当然,我的文件名也不是统一的。

有没有办法在不编写任何代码的情况下自动执行此操作?:)

4

6 回答 6

12

我可能会选择一个makefile(我认为它可能更易于长期维护),但如果你想要一个快速n脏的Windows批处理命令,如下所示应该可以工作:

for %%a in (*.js) do @java -jar yuicompressor.jar "%%a" -o "deploy\%%a"
于 2008-10-22T20:05:49.197 回答
5

如果你是面向 Java 的,你也可以使用 Ant 进行转换。我找到了一篇关于YUI Compressor 的 Ant Taks的博客文章。免责声明:从未尝试过 - 抱歉

于 2008-10-22T20:53:49.210 回答
5

YUI 压缩器现在支持通配符,从 2.4.4 版本开始。您可以在此处或从YUI Git Hub获取最新版本。

于 2011-04-14T08:22:35.227 回答
4

我应该提到,使用 GNU Make,我有以下规则:

%-min.js: %.js
    ${java} -jar ${compressor} $< -o ${<:.js=-min.js}
于 2008-10-22T20:16:14.233 回答
2

对于 unix 或 cygwin,您可以使用 xargs 或类似的东西:

ls -1 *.js | awk '{printf("java -jar yuicompressor.jar %s -o deploy/%s",$1,$1)}'

当您对命令行执行它感到满意时,将其通过管道传输到 /bin/sh。

于 2008-10-22T20:14:03.783 回答
1

您需要使用某种脚本来获取所有 .js 文件的列表,然后在所有文件上运行 YUI Compressor。在 windows 命令提示符下,这样的事情应该可以工作:

FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f
于 2008-10-22T20:10:42.480 回答