web-dev-qa-db-fra.com

Réduisez plusieurs fichiers avec UglifyJS

Est-il possible de compresser plusieurs fichiers avec UglifyJS?

Quelque chose comme...

uglifyjs -o app.build.js appfile1.js appfile2.js ...

En outre, j'exécute Uglify via NodeJS dans l'invite de commandes Windows

37
jcreamer898

En fait, ce que vous voulez faire (tromper en pensant que son seul fichier) est juste le chat

Linux

cat file1.js file2.js file3.js file4.js | uglifyjs -o files.min.js

Windows (non testé)

type file1.js file2.js > uglifyjs -o files.min.js

[~ # ~] ou [~ # ~]

type file1.js file2.js > merged.files.js
uglifyjs -o merged.files.js
52
Jakub

Pour les futurs lecteurs de cette question, avec UglifyJS2, c'est trivial maintenant ...

uglifyjs file1.js file2.js -o foo.min.js

Il existe également un support pour les cartes sources.

uglifyjs file1.js file2.js -o foo.min.js --source-map foo.min.js.map --source-map-root http://foo.com/src
39
jcreamer898

Non.

mais comme d'autres réponses l'indiquent, sous sa forme actuelle, il peut les concaténer tous dans la même sortie. Ce qui n'est pas la même chose que ce qui est demandé.

Si vous avez une douzaine de fichiers qui sont des modules individuels. Vous ne pouvez pas tous les uglifier en même temps. Ce qui est souhaitable car vous économisez du temps de construction pour démarrer nodejs à chaque fois.

yuicompressor le permet, et le temps gagné en ne démarrant pas de jvm pour chaque fichier individuel est excellent. Et à la fin, vous obtenez file1-min.js, file2-min.js, etc ... pas un blob concaténé.

Avec uglify, vous devrez générer un processus par fichier si vous ne souhaitez pas concaténer la sortie.

3
gcb