Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to save a stream into multiple destinations with Gulp.js?

const gulp = require('gulp'); const $ = require('gulp-load-plugins')(); const source = require('vinyl-source-stream'); const browserify = require('browserify');  gulp.task('build', () =>   browserify('./src/app.js').bundle()     .pipe(source('app.js'))     .pipe(gulp.dest('./build'))       // OK. app.js is saved.     .pipe($.rename('app.min.js'))     .pipe($.streamify($.uglify())     .pipe(gulp.dest('./build'))       // Fail. app.min.js is not saved. ); 

Piping to multiple destinations when file.contents is a stream is not currently supported. What is a workaround for this problem?

like image 806
Konstantin Tarkus Avatar asked Feb 22 '14 07:02

Konstantin Tarkus


People also ask

How many streams are available in Gulp?

There are three streams after 10th, i.e. Science, Commerce and Arts. These streams are vast and extensive worlds with wide-ranging sub-disciplines and branches that you can further explore after concluding your schooling.

What is Gulp DEST?

dest() Creates a stream for writing Vinyl objects to the file system.


1 Answers

Currently you have to use two streams for each dest when using file.contents as a stream. This will probably be fixed in the future.

var gulp       = require('gulp'); var rename     = require('gulp-rename'); var streamify  = require('gulp-streamify'); var uglify     = require('gulp-uglify'); var source     = require('vinyl-source-stream'); var browserify = require('browserify'); var es         = require('event-stream');  gulp.task('scripts', function () {     var normal = browserify('./src/index.js').bundle()         .pipe(source('bundle.js'))         .pipe(gulp.dest('./dist'));      var min = browserify('./src/index.js').bundle()         .pipe(rename('bundle.min.js'))         .pipe(streamify(uglify())         .pipe(gulp.dest('./dist'));      return es.concat(normal, min); }); 

EDIT: This bug is now fixed in gulp. The code in your original post should work fine.

like image 89
Contra Avatar answered Oct 09 '22 16:10

Contra