Tworzę 3 minified pakiety dla mojej aplikacji. Mam 2 zadania, aby to zrobić, minify i pakunek. Minify ma zależność od pakietu. Jeśli uruchomię minify, oba zadania będą działać bez błędów. Pakiety są tworzone, ale zminimalizowane pliki nie są. Jeśli usunę zależność od pakunku, będę mógł uruchomić minify samodzielnie, a minified pliki zostaną pomyślnie utworzone. To prowadzi mnie do przekonania, że pliki mogą być używane, gdy zadanie minify zostanie uruchomione (ponieważ pakiet się nie zakończył?). Jak sprawić, by poczekał, aż pliki będą w pełni gotowe? Czy mogę przekazać strumień? A może połączyć je w jedno zadanie? Powodem, dla którego nie są one obecnie jednym zadaniem, jest to, że generują 2 pliki na pakiet (pakiet niesklasyfikowany i minified).Pakiet Gulp następnie 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);
});
}