Как автоматизировать сжатие файлов JavaScript с помощью YUI Compressor?

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

И, конечно, имена моих файлов не так единообразны.

Есть ли способ автоматизировать это без написания кода?:)

Ответы

Ответ 1

Я могу пойти на make файл (я думаю, что он, вероятно, будет более долговечным в обслуживании), но если вы хотите быстро-n-грязную командную команду Windows, то должно работать следующее:

for %%a in (*.js) do @java -jar yuicompressor.jar "%%a" -o "deploy\%%a"

Ответ 2

Если вы ориентированы на Java, вы также можете использовать Ant для преобразования. Я нашел запись о Ant Taks для YUI Компрессор. Отказ от ответственности: никогда не пробовал - извините

Ответ 3

Компрессор YUI теперь поддерживает подстановочные знаки, начиная с версии 2.4.4. Вы можете получить последнюю версию здесь или YUI Git Hub.

Ответ 4

Я должен упомянуть, что с помощью GNU Make у меня есть следующее правило:

%-min.js: %.js
    ${java} -jar ${compressor} $< -o ${<:.js=-min.js}

Ответ 5

И для unix или cygwin вы можете использовать xargs или что-то вроде:

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

Соедините трубку с /bin/sh, когда вы довольны командной строкой для ее выполнения.

Ответ 6

Для получения списка всех файлов .js вам нужно использовать какой-то script, а затем запустить YUI Compressor на всех из них. В командной строке Windows должно работать что-то вроде этого:

FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f