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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage