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?