J'aimerais pouvoir exécuter une seule commande dans mon dossier de projet pour concaténer et compresser tous mes fichiers JavaScript (peut-être avec le compresseur YUI) dans un fichier de sortie unique.
Si possible, je voudrais préciser partiellement le ordre dans lequel ils sont concatérés ensemble mais ne doivent pas garder une trace de chaque fichier JavaScript. Peut-être qu'un fichier de configuration pourrait être construit qui ressemble à ceci: p>
application.js excanvas.js json2.js jquery*.js flot/* backbone*.js app/screen-*.js app/main.js app/crud-*.js app/* *
4 Réponses :
find . -iname "*.js" -exec cat "{}" \; > singlefile.js [JS compressor] singlefile.js First concatenate the files, then compress them.If you really care, though, you may want a real JS optimizer like the RequireJS optimizer.
Le script suivant suivra l'ordre de votre fichier de configuration et utilisera les motifs fournis par
#!/bin/bash shopt -s nullglob; while read config; do cat $config >> out.js done < /path/to/config/file
J'ai fini par construire une solution qui utilise un fichier JSON pour répertorier tous les fichiers requis par l'application. Sur l'environnement DEV, les fichiers sont chargés individuellement par le navigateur. Sur le serveur de production, le grand fichier compilé est chargé. Sur ma machine Dev Dev, j'exécute manuellement une commande pour itérer chaque fichier, l'affectant à un fichier Big JS et exécutant le compresseur YUI. P>
C'est un petit hacky, mais c'est ici: https://github.com/renownedmedia/js-compressor p>
Étant donné un dossier de fichiers JavaScript: avec un fichier de configuration légèrement modifié: p> et ce script Bash: p> Vous trouverez le script "fusionné" dans tous les scripts après avoir exécuté le script: p> geee: ~/src/bash/js-files
$ . DO.sh
fetching jsmin (by Douglas Crockford) from github
[1]+ Done wget -q https://github.com/douglascrockford/JSMin/raw/master/jsmin.c -O $TMPJSMIN
minifying:
application.js
excanvas.js
json2.js
jquery-1.7.js
jquery-plugin.js
jquery-ui.js
flot/bull.js
flot/cat.js
flot/cow.js
flot/dog.js
flot/moo.js
flot/sheep.js
backbone23.js
backbone-ibm.js
backbone-isp.js
backbone-national.js
backbone-worldwide.js
app/screen-attach.js
app/screen-detach.js
app/screen-shot.js
app/main.js
app/crud-del.js
app/crud-in.js
app/crud-sel.js
app/aligator.js
app/giraffe.js
app/monkey.js
app/mouse.js
all-scripts.js
cp.js
ieee754.js
ole.js
ummap.js
xls2txt.js