Javascript 在管道连接至gulp browserify时,如何获得错误通知?

Javascript 在管道连接至gulp browserify时,如何获得错误通知?,javascript,gulp,browserify,gulp-notify,Javascript,Gulp,Browserify,Gulp Notify,我正在使用browserify以便在前端代码中使用npm模块,并gulp执行构建任务。这很好: var browserify = require('gulp-browserify'); gulp.task('js', ['clean'], function() { gulp .src('./public/js/src/index.js') .pipe(browserify({ insertGlobals : true,

我正在使用browserify以便在前端代码中使用npm模块,并gulp执行构建任务。这很好:

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'))
});
但是,如果我的JS中有语法错误,我希望通过OSX通知通知我该错误。我已经看到了这一点,并修改了我的代码,在
.browserify()
之后添加了
.on('error')

//浏览/捆绑JS。
吞咽
.src('./public/js/src/index.js')
.管道(棕色)({
insertGlobals:true,
调试:!gulp.env.production
}).on('error',函数(err){
通知一个错误({
信息:“错误:”,
标题:“运行browserify失败”
}
这个.emit('end');
})
.pipe(大口目的地('./public/js/dist'))
但是,当我的JS被破坏时,这不会通知我。在('error',…)上的
中添加console.log()也不会记录。我怀疑,因为这个问题不涉及使用吞咽管道


在管道连接到gulp browserify时,如何获得错误通知?

在我的gulpfile中,我只需侦听未捕获的异常并使用以下命令进行通知:


我发现在退出流程之前,必须有一个
setTimeout
延迟才能显示通知。

我使用gulp plumber来捕捉所有错误:

gulp.task('browserify', function(){
    return browserify('./assets/js/src/app.js')
            .pipe(plugins.plumber())
            .pipe(gulp.dest('./assets/js'))
            .pipe(plugins.notify({message: "browserify complete"}))
});

您可能还必须使用gulp streamify。我认为browserify不支持开箱即用的流。我尝试使用gulp进行browserify已经有一段时间了,所以我不确定我的代码片段是否可以开箱即用,对此表示抱歉


使用吞咽通知。注意,您还应该使用该模块,而不是不推荐使用的模块

示例如何在
gulp
任务中使用
browserify
util


另一个示例是如何在js出现语法错误时使用
browserify
并显示通知。

Ack,我目前正在为每个标签使用
gulp notify
。我希望为不同的错误提供特定(和不同)的消息-例如,sass,vs browserify错误。谢谢(和升级)但是!你使用browserify util还是gulp browserify插件?在我的browserify任务中,我使用browserify util,它会在js出现错误时通知我。@Alexander,实际上我想你刚刚回答了这个问题。从我的gulpfile:
var browserify=require('gulp-browserify'))
该软件包不再维护-请参阅。正确的做法似乎是使用另一个软件包。是否将其作为答案发布?
var Notifier = require('node-notifier');
notifier = new Notifier();

process.on('uncaughtException', function(err) {
  notifier.notify({title: 'error', message: 'gulp process has crashed'});

  setTimeout(function() {
    console.error(err);
    process.exit(1);
  }, 1000);
});
gulp.task('browserify', function(){
    return browserify('./assets/js/src/app.js')
            .pipe(plugins.plumber())
            .pipe(gulp.dest('./assets/js'))
            .pipe(plugins.notify({message: "browserify complete"}))
});
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'));
});