J'essaye d'utiliser Gulp pour:
- Prenez 3 fichiers javascript spécifiques, concaténez-les, puis enregistrez le résultat dans un fichier (concat.js)
- Prenez ce fichier concaténé et uglify / minify-le, puis enregistrez le résultat dans un autre fichier (uglify.js)
J'ai le code suivant jusqu'à présent
var gulp = require('gulp'),
gp_concat = require('gulp-concat'),
gp_uglify = require('gulp-uglify');
gulp.task('js-fef', function(){
return gulp.src(['file1.js', 'file2.js', 'file3.js'])
.pipe(gp_concat('concat.js'))
.pipe(gp_uglify())
.pipe(gulp.dest('js'));
});
gulp.task('default', ['js-fef'], function(){});
Cependant, l'opération uglify ne semble pas fonctionner ou le fichier n'est pas généré pour une raison quelconque.
Que dois-je faire pour y parvenir?
Réponses:
Il s'avère que j'avais besoin d'utiliser
gulp-rename
et de sortir le fichier concaténé avant la «uglification». Voici le code:En venir
grunt
était un peu déroutant au début, mais cela a du sens maintenant. J'espère que cela aide lesgulp
noobs.Et, si vous avez besoin de sourcemaps, voici le code mis à jour:
Voir gulp-sourcemaps pour plus d'informations sur les options et la configuration.
la source
gulp.task
devrait être:.pipe(gp_concat('concat.js'))
Mon fichier gulp produit un fichier final compiled-bundle-min.js, j'espère que cela aidera quelqu'un.
la source
Solution utilisant
gulp-uglify
,gulp-concat
etgulp-sourcemaps
. Ceci provient d'un projet sur lequel je travaille.Cela combine et compresse tous vos
scripts
, les met dans un fichier appeléall_the_things.js
. Le fichier se terminera par une ligne spécialeCe qui indique à votre navigateur de rechercher ce fichier de carte, qu'il écrit également.
la source
Votre solution ne fonctionne pas car vous devez enregistrer le fichier après le processus concat, puis le uglifier et l'enregistrer à nouveau. Vous n'avez pas besoin de renommer le fichier entre concat et uglify.
la source
10 juin 2015: Note de l'auteur de
gulp-uglifyjs
:18 février 2015:
gulp-uglify
et lesgulp-concat
deux fonctionnent bien avecgulp-sourcemaps
maintenant. Assurez-vous simplement de définirnewLine
correctement l' option pourgulp-concat
; Je recommande\n;
.Réponse originale (décembre 2014): Utilisez gulp-uglifyjs plutôt .
gulp-concat
n'est pas nécessairement sûr; il doit gérer correctement les points-virgules de fin.gulp-uglify
ne prend pas non plus en charge les cartes source. Voici un extrait d'un projet sur lequel je travaille:la source
gulp-concat
- être ne l'a pas fait (gulp-uglify
ne vous permettra pas de réduire plusieurs fichiers, vous devez d'abord concaturer). En outre,gulp-concat
utilise un\r\n
par défaut, ce qui pourrait causer des problèmes si vos fichiers JS ne se terminent pas correctement. Mais oui, maintenant qu'il y a du support, il est probablement préférable d'emprunter cette voie car elle est plus flexible.nous utilisons la configuration ci-dessous pour faire quelque chose de similaire
Un exemple de fichier GulpDS est ci-dessous:
la source