考虑这两个一饮而尽任务:为什么一些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不。
为什么行为上的差异?