Javascript 在管道连接至gulp browserify时,如何获得错误通知?
我正在使用browserify以便在前端代码中使用npm模块,并gulp执行构建任务。这很好: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,
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'));
});