vinyl-source-stream
變換可讀流入乙烯基對象。
vinyl-buffer
將流式乙烯基轉化爲乙烯基緩衝劑。
乙烯物體可以包裝stream or a buffer,並且gulp.dest
接受兩者。然而,一些吞嚥插件不接受流乙烯基。當你開始大口的工作事實上,
流處理不支持
錯誤是很常見的。例如,afaik,沒有支持流乙烯的nodejs縮小器:您需要gulp-buffer
,以使您的當前流可以使用這些插件。從gulp.src
產生
乙烯基是緩衝液,但具有vinyl-source-stream
生成乙烯基從可讀流(browserify.bundle()
返回可讀流)都沒有,所以vinyl-buffer
將需要使用幾個插件與該一樣醜化。
所以,你並不需要vinyl-buffer
才能使只是 browserify和gulp一起工作。這很簡單,一飲而盡任務將正常工作:
gulp.task('browser' , function(){
return browserify({
debug: true,
entries : './browserify-script.js'
})
.bundle()
.pipe(source('browserify-script.js'))
// .pipe(buffer()) //you don't need this,
//since gulp-dest accepts both streams and buffers
.pipe(gulp.dest('./scripts/'));
});
然而,使用gulp-uglify
插件,你將需要buffer
:
gulp.task('browser-ugly' , function(){
return bundler = browserify({
debug: true,
entries : './browserify-script.js'
})
.bundle()
.pipe(source('origin.js'))
.pipe(buffer()) //you cannot get rid of this.
.pipe(uglify())
.pipe(gulp.dest('./scripts/'));
});
由於uglify()
需要一個緩衝。刪除.pipe(buffer())
行會導致uglify插件發生'streaming not supported'錯誤。
但是,你通常不需要緩衝()與一飲而盡,因爲gulp.src
從一開始就產生緩衝乙烯基:
gulp.task('gulp-uglify' , function(){
gulp.src('simple.js')
.pipe(uglify()) //no need to buffer()
.pipe(gulp.dest('./scripts'));
});