vinyl-source-stream
преобразует читаемых потоки в виниловых объектов.
vinyl-buffer
превращает потоковый винил в буферный винил.
Виниловый объект может обернуть stream or a buffer, а gulp.dest
принимает оба. Тем не менее, несколько плагинов gulp не принимают потоковые винилы. На самом деле,
потоковое не поддерживается
ошибка довольно часто, когда вы начинаете работать с глотком. Для примера, afaik, нет нигдевых нимеров, которые поддерживают потоковые винилы: вам нужно gulp-buffer
, чтобы ваш текущий поток работал с такими плагинами.
винилов, полученные от gulp.src
являются буферами, но винилы генерируются с vinyl-source-stream
из читаемого потока (browserify.bundle()
возвращает читаемый поток) не являются, поэтому vinyl-buffer
будет необходим использовать несколько плагин с этим, как уродовать.
так, вам не нужно vinyl-buffer
сделать только прокрутить страницу браузера и выполнить 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.
Однако, как правило, не нужно буфера() с глотком, поскольку gulp.src
создает буфер винилы с самого начала:
gulp.task('gulp-uglify' , function(){
gulp.src('simple.js')
.pipe(uglify()) //no need to buffer()
.pipe(gulp.dest('./scripts'));
});