I am using browserify so I can use npm modules in my front end code, and gulp to do my build tasks. This works fine:
var browserify = require('gulp-browserify');
gulp.task('js', ['clean'], function() {
gulp
.src('./public/js/src/index.js')
.pipe(browserify({
insertGlobals : true,
debug : ! gulp.env.production
}))
.pipe(gulp.dest('./public/js/dist'))
});
However if there's a syntax error in my JS, I'd like to be notified of the error via an OS X notification. I've seen this similar question and modified my code to add an .on('error'...)
after the .browserify()
:
// Browserify/bundle the JS.
gulp
.src('./public/js/src/index.js')
.pipe(browserify({
insertGlobals : true,
debug : ! gulp.env.production
}).on('error', function(err){
notify.onError({
message: "Error: <%= error.message %>",
title: "Failed running browserify"
}
this.emit('end');
})
.pipe(gulp.dest('./public/js/dist'))
However this doesn't notify when my JS is broken. Adding a console.log() inside on('error',...)
doesn't log either. I suspect because that question doesn't involve using gulp piping.
How can I get notified of errors during when piping to gulp browserify?
Use gulp-notify. Note also you should use the browserify module instead of the deprecated gulp-browerify module.
var browserify = require('browserify'),
brfs = require('brfs'),
watchify = require('watchify'),
notify = require("gulp-notify");
var bundler = watchify(browserify({
basedir: "./public/js/src"
}));
// Browserify our code
gulp.task('js', ['clean'], function() {
// Browserify/bundle the JS.
return bundler.bundle()
// log errors if they happen
.on('error', function(err) {
return notify().write(err);
})
.pipe(source('index.js'))
.pipe(gulp.dest('public/js/dist'));
});
Here example how to use browserify
util in gulp
task.
Here another example how to use browserify
and show notification, when js has syntax errors.