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

StackOverflow https://stackoverflow.com/questions/227288

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top