/gulp-error-handle

Allows you to set one error handler for multiple pipes

Primary LanguageJavaScriptMIT LicenseMIT

Allows you to set single handler instead of appending .on('error', log) to each pipe.
In contrary to gulp-plumber if error occures task will stop, it is, though do not means that your watch task will stop (see example).

How to use

const errorHandler = require('gulp-error-handle');

gulp.task('build', function() {
  return gulp.src('styles/*.css')
    .pipe(errorHandler())
    .pipe(gulp.dest('build/'));
});

you can pass in function as well

const logError = function(err) {
  gutil.log(err);
  this.emit('end');
};

gulp.task('build', function() {
  return gulp.src('styles/*.css')
    .pipe(errorHandler(logError))
    .pipe(gulp.dest('build/'));
});

Note: if you're passing your own function in, you need to emit 'end' manually (if you're using plugin which already doing this, such as gulp-notify, you dont need to do this).

Example

const gulp = require('gulp');
const sass = require('gulp-sass');
const del = require('del');
const errorHandler = require('gulp-error-handle');

gulp.task('clean', () => del['build']);

gulp.task('css:build', ['clean'], function() {
  return gulp.src('styles/**/*.scss')
    .pipe(errorHandler())
    .pipe(sass())
    .pipe(gulp.dest('build/'));
});

gulp.task('watch', () => {
  gulp.watch('styles/**/*.scss', ['css:build']);
});

gulp.task('default', ['clean', 'css:build', 'watch'])