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'));
});