Skip to content

Instantly share code, notes, and snippets.

@iRoachie
Created June 16, 2016 16:22
Show Gist options
  • Save iRoachie/94734d89e582f76627862e57a0d815f0 to your computer and use it in GitHub Desktop.
Save iRoachie/94734d89e582f76627862e57a0d815f0 to your computer and use it in GitHub Desktop.
Gulp combine streams for erros

Combining streams to handle errors

By default, emitting an error on a stream will cause it to be thrown unless it already has a listener attached to the error event. This gets a bit tricky when you're working with longer pipelines of streams.

By using stream-combiner2 you can turn a series of streams into a single stream, meaning you only need to listen to the error event in one place in your code.

Here's an example of using it in a gulpfile:

var combiner = require('stream-combiner2');
var uglify = require('gulp-uglify');
var gulp = require('gulp');

gulp.task('test', function() {
  var combined = combiner.obj([
    gulp.src('bootstrap/js/*.js'),
    uglify(),
    gulp.dest('public/bootstrap')
  ]);

  // any errors in the above streams will get caught
  // by this listener, instead of being thrown:
  combined.on('error', console.error.bind(console));

  return combined;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment