8
votes

Répertoire de compresse de manière récursive des fichiers JavaScript dans un seul fichier

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/*
*


0 commentaires

4 Réponses :


3
votes
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.

0 commentaires

0
votes

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


0 commentaires

0
votes

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.

C'est un petit hacky, mais c'est ici: https://github.com/renownedmedia/js-compressor


0 commentaires

2
votes

Étant donné un dossier de fichiers JavaScript: xxx pré>

avec un fichier de configuration légèrement modifié: p> xxx pré>

et ce script Bash: p> xxx pré>

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


0 commentaires