Warum "fließen" einige Gulp-Streams standardmäßig, andere nicht?
Betrachten Sie diese beiden Schluckaufgaben:
gulp.task('src', function(done) {
gulp.src('docs/*')
.on('end', function() {
console.log('ending');
done();
});
});
gulp.task('dest', function(done) {
gulp.src('docs/*')
.pipe(gulp.dest('temp'))
.on('end', function() {
console.log('ending');
done();
});
});
Laufengulp dest
verhält sich wie erwartet und gibt Folgendes aus:
[12:33:15] Using gulpfile ~/Projects/gulp-exit/gulpfile.js
[12:33:15] Starting 'dest'...
ending
[12:33:15] Finished 'dest' after 13 ms
Allerdings läuftgulp src
gibt nur aus:
[12:31:11] Using gulpfile gulpfile.js
[12:31:11] Starting 'src'...
Das'end'
callback wird nie aufgerufen. Nach ein bisschen Debugging finde ich den Stream imdest
task is fließend, während der Stream in der Quellaufgabe nicht ist.
Signalisierung dersrc
Task, der explizit ausgeführt wird, indem @ aufgerufen wistream.resume()
:
gulp.task('src', function(done) {
gulp.src('docs/*')
.on('end', function() {
console.log('ending');
done();
})
.resume();
});
Liefert die erwartete Ausgabe:
[12:46:52] Using gulpfile gulpfile.js
[12:46:52] Starting 'src'...
ending
[12:46:52] Finished 'src' after 11 ms
Ich habe die gleiche Mischung von Verhaltensweisen mit Plugins gesehen: gulp.dest und gulp-mocha scheinen fließende Ströme zurückzugeben, während gulp-logger und gulp-gh-pages unterlassen Sie
Warum ist der Unterschied im Verhalten?