Description
In continue from this issue and summed up thoughts about error handling in gulp here is possible solution. Monkey patch pipe
method from gulp.src
in such a way, that it will monkey patch other streams, when you call pipe
on them. This will allow fix pipe
behaviour, that unpipes destanation stream on error.
Here is proposed options to gulp.src
:
unpipeOnError [Boolean]
Don't remove ondata
listener in destination stream on error. This option inherits on all streams in pipeline.
logOnError: [Boolean, String]
Little helper, that cleans up copy-pasted on('error', gutil.log)
code. It will log errors that prefixed by passed string.
Example of usage:
gulp.src('coffee/**/*.coffee', { unpipeOnError: false, logOnError: true })
.pipe(gulpPrefixer('// Copyright 2014 (C) Aswesome company'))
.pipe(coffee())
.pipe(gulp.dest('js/'));
Also it will be nice to have unpipeOnError
option inside a pipe
function to allow partially soft pipelines:
gulp.src('coffee/**/*.coffee', { logOnError: true })
.pipe(gulpPrefixer('// Copyright 2014 (C) Aswesome company'))
.pipe(coffee(), { unpipeOnError: false })
.pipe(gulp.dest('js/'));