Comment automatiser la compression de fichiers JavaScript avec YUI Compressor?
-
03-07-2019 - |
Question
YUI Compressor n'accepte pas les paramètres génériques, je ne peux donc pas l'exécuter de la manière suivante:
C:>java -jar yuicompressor.jar *.js
Mais j'ai plus de 500 fichiers et je préférerais ne pas avoir à créer un fichier de commandes comme celui-ci:
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
Et bien sûr, mes noms de fichiers ne sont pas de manière uniforme.
Est-il possible d'automatiser cela sans écrire de code? :)
La solution
Je pourrais opter pour un fichier makefile (je pense que ce serait probablement plus facile à maintenir à long terme), mais si vous voulez une commande batch Windows fast-n-dirty, une commande semblable à celle-ci devrait fonctionner:
for %%a in (*.js) do @java -jar yuicompressor.jar "%%a" -o "deploy\%%a"
Autres conseils
Si vous êtes orienté vers Java, vous pouvez également utiliser Ant pour la conversion. J'ai trouvé une entrée de blog à propos d'un aide-mémoire pour le compresseur YUI . Disclaimer: Jamais essayé - désolé
Le compresseur YUI prend désormais en charge les caractères génériques à partir de la version 2.4.4. Vous pouvez obtenir la dernière version ici ou auprès de YUI Git Hub .
Je dois mentionner que l'utilisation de GNU Make a la règle suivante:
%-min.js: %.js
${java} -jar ${compressor} $< -o ${<:.js=-min.js}
Et pour unix ou cygwin, vous pouvez utiliser xargs ou quelque chose comme:
ls -1 * .js | awk '{printf (" java -jar yuicompressor.jar% s -o deploy /% s ", $ 1, $ 1)}'
Envoyez-le à / bin / sh lorsque vous êtes prêt à exécuter la ligne de commande.
Vous devrez utiliser une sorte de script pour obtenir la liste de tous les fichiers .js, puis exécuter le YUI Compressor sur chacun d'entre eux. À l'invite de commande Windows, quelque chose comme ceci devrait fonctionner:
FOR %f IN (*.js) DO java -jar yuicompressor.jar %f -o deploy\%f