如何在浏览浏览器时获得错误通知?

mik*_*ana 5 javascript browserify gulp gulp-notify

我使用browserify这样我就可以用我的前端代码NPM模块,并吞掉做我的构建任务.这很好用:

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'))
});
Run Code Online (Sandbox Code Playgroud)

但是,如果我的JS中存在语法错误,我希望通过OS X通知收到错误通知.我已经看到了这个类似的问题和修改我的代码添加.on('error'...).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'))
Run Code Online (Sandbox Code Playgroud)

但是,当我的JS被破坏时,这不会通知.在里面添加console.log()on('error',...)也不会记录.我怀疑是因为这个问题不涉及使用gulp管道.

如何在浏览浏览器时获得错误通知?

ale*_*mac 6

使用gulp-notify.另请注意,您应该使用browserify模块,而不是过时的一饮而尽,browerify模块.

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'));
});
Run Code Online (Sandbox Code Playgroud)

这里举例说明如何browserifygulp任务中使用util .

这里有另一个例子browserify,当js有语法错误时如何使用和显示通知.