2008-10-22 6 views
13

YUI Compressor n'accepte pas les paramètres génériques, donc je ne peux pas courir comme ça:Comment automatiser la compression de fichiers JavaScript avec YUI Compressor?

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

Mais je plus de 500 fichiers et préférerions ne pas avoir à créer un fichier batch 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 sont pas d'une manière aussi uniforme.

Est-il possible d'automatiser cela sans écrire de code? :)

+1

YUICompressor prend en charge les caractères génériques à partir de la version 2.4.4. Voir ci-dessous pour les liens de téléchargement. – hazerd

Répondre

12

je pourrais aller un makefile (je pense que ce serait probablement plus maintenable à long terme), mais si vous voulez une commande de traitement par lots de Windows rapide n-sale quelque chose comme ce qui suit devrait fonctionner:

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

Cela fonctionne bien s'il n'y a pas d'espaces dans le nom de fichier. Merci! –

+0

Vous devriez être en mesure de jeter des citations là-bas - Je vais modifier cela. –

+0

Oui, ça l'a fait! La dernière chose que je dois surmonter est d'être en mesure d'exécuter ce fichier batch à partir du dossier A, ont tous les fichiers .js dans le dossier B, et placer des fichiers de sortie dans le dossier C. –

1

Vous devrez utiliser une sorte de script pour obtenir une liste de tous les fichiers .js, puis exécuter le compresseur YUI sur chacun d'eux. Sur les invite de commande Windows, quelque chose comme cela devrait fonctionner:

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

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 $)}'

tuyau/bin/sh lorsque vous êtes satisfait de la ligne de commande pour exécuter il.

+0

et pour une version récursive, utilisez find au lieu de ls –

4

Je dois mentionner que l'utilisation de GNU Make, je la règle suivante:

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

Pourquoi utilisez-vous '$ {<:.js = -min.js}' au lieu de simplement '$ @'? –

+0

Parce qu'il y a beaucoup de choses sur GNU Make je ne sais pas. – foxxtrot

5

Si vous Orienté vers Java, vous pouvez également utiliser Ant pour la conversion. J'ai trouvé un blog entry à propos d'un Ant Taks for the YUI Compressor. Clause de non-responsabilité: Jamais essayé - désolé

+0

Une autre tâche ant peut être trouvée sur https: // bitbucket.org/m6_russell_francis/yui-compressor-ant-task Je l'utilise dans plusieurs projets pour automatiser la compression des fichiers js/css. En tant qu'auteur, je peux être légèrement biaisé. – Russ

5

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 here ou YUI Git Hub.

Questions connexes