考慮這兩個一飲而盡任務:爲什麼一些Gulp流默認爲「流動」,而另一些則不?
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();
});
});
運行gulp dest
行爲與預期相同,輸出:
[12:33:15] Using gulpfile ~/Projects/gulp-exit/gulpfile.js
[12:33:15] Starting 'dest'...
ending
[12:33:15] Finished 'dest' after 13 ms
但是,運行gulp src
只輸出:
[12:31:11] Using gulpfile gulpfile.js
[12:31:11] Starting 'src'...
的'end'
回調不會被調用。經過一些調試,我認爲dest
任務中的流是flowing,而源任務中的流不是。
信令的src
任務通過調用stream.resume()
明確流向:
gulp.task('src', function(done) {
gulp.src('docs/*')
.on('end', function() {
console.log('ending');
done();
})
.resume();
});
給人的預期輸出:
[12:46:52] Using gulpfile gulpfile.js
[12:46:52] Starting 'src'...
ending
[12:46:52] Finished 'src' after 11 ms
我已經看到了這個同樣的行爲的混合使用插件:gulp.dest和gulp-mocha似乎返回流動的流,而gulp-logger和gulp-gh-pages不。
爲什麼行爲上的差異?