Utilizzando gulp.js Ho tre compiti (uglify, buildHTML, rmRevManifest) mi piacerebbe correre come parte di un compito generazione del padre. Il codice che ho funziona, eccetto che esegue le attività in parallelo (vale a dire l'ordine non viene mantenuto). Come posso bloccare il task e non eseguire il prossimo fino a quando il precedente termina?Gulp.js compiti eseguiti in ordine specifico blocco
I.E. in questo momento l'ordine di esecuzione ritorna come:
[11:50:17] gulp-notify: [Gulp notification] Deleted 'rev-manifest.json'.
[11:50:17] gulp-notify: [Gulp notification] Created 'build/index.html'.
[11:50:17] gulp-notify: [Gulp notification] Uglified JavaScript.
Le questioni di ordine, e uglify dovrebbe eseguire prima, poi buildHTML, e, infine, rmRevManifest.
gulp.task('build', ['uglify', 'buildHTML', 'rmRevManifest'], function(cb) {
});
gulp.task('uglify', function(cb) {
gulp.src('client/js/source/**/*.js')
.pipe(concat('app'))
.pipe(ngmin())
.pipe(uglify())
.pipe(rev())
.pipe(rename({
extname: ".min.js"
}))
.pipe(gulp.dest('client/js'))
.pipe(rev.manifest())
.pipe(gulp.dest('client/js'))
.pipe(notify('Uglified JavaScript.'));
});
gulp.task('buildHTML', function(cb) {
gulp.src('client/views/index.html')
.pipe(replace(/app\-[a-fA-F0-9]\.min\.js/, 'app-.min.js'))
.pipe(gulp.dest('client/build'))
.pipe(notify('Created \'build/index.html\'.'));
});
gulp.task('rmRevManifest', function(cb) {
gulp.src('client/js/rev-manifest.json', { read: false })
.pipe(rimraf())
.pipe(notify('Deleted \'rev-manifest.json\'.'));
});
Questo è un po 'limitato. Ad esempio, se si dispone di un'attività di script che crea gli script e in alcuni casi si desidera eseguire prima un'operazione pulita. In gulp devi rendere "pulita" una dipendenza dagli script. Questo ha l'effetto che la pulizia diventa obbligatoria. – Henry