Sto creando 3 bundle minificati per la mia applicazione. Ho 2 compiti per fare questo, minify e bundle. Minify ha una dipendenza dal bundle. Se eseguo minify, entrambe le attività vengono eseguite senza errori. I bundle sono creati, ma i file minificati non lo sono. Se rimuovo la dipendenza dal pacchetto, posso quindi eseguire minify da solo e i file minificati vengono creati correttamente. Questo mi porta a credere che forse i file sono in uso quando si attiva il task minify (perché bundle non ha finito?). Come faccio ad aspettare che i file siano completamente pronti? Posso passare il flusso? O forse combinare questi in un unico compito? Il motivo per cui non sono attualmente un singolo compito è perché generano 2 file per pacchetto (un pacchetto non miniato e un pacchetto minificato).Gulp bundle then minify
var outFolder = __dirname + '\\Scripts\\dist';
var appBundles = [
{ scripts: ['Scripts/Common/**/*.js'], output: 'eStore.common.js' },
{ scripts: ['Scripts/Checkout/**/*.js'], output: 'eStore.checkout.js' },
{ scripts: ['Scripts/ProductDetail/**/*.js'], output: 'eStore.product.js' }
];
gulp.task('bundle', bundle);
gulp.task('minify', ['bundle'], minify); // this one doesn't work
gulp.task('minifyOnly', minify); // this one works
function bundle() {
appBundles.forEach(function (appBundle) {
gulp.src(appBundle.scripts)
.pipe(concat(appBundle.output))
.pipe(sourcemaps.init())
.pipe(sourcemaps.write(outFolder + '\\maps'))
.pipe(gulp.dest(outFolder))
.on('error', errorHandler);
});
}
function minify() {
appBundles.forEach(function(appBundle) {
var bundleSrc = outFolder + '\\' + appBundle.output;
gulp.src(bundleSrc)
.pipe(rename({ extname: '.min.js' }))
.pipe(uglify())
.pipe(gulp.dest(outFolder))
.on('error', errorHandler);
});
}