我使用以下gulp任务
const gulp = require('gulp');
const browserify = require('browserify');
const watchify = require('watchify');
const source = require('vinyl-source-stream');
const gutil = require('gulp-util');
gulp.task('watchify', () => {
var bundler = watchify(browserify('./test/app.js', {
debug: true,
fullPaths: true,
paths: ['./src'],
cache: {},
packageCache: {}
}))
.on('update', bundle)
.on('error', (error) => { gutil.log('[error]', error); });
function bundle(){
return bundler
.bundle()
.pipe(source('bundle.js'))
.pipe(gulp.dest('./test/'));
}
return bundle();
});
但今天浏览器进程挂起而没有发送错误事件,经过数小时的跟踪和错误我发现它是因为这样的事情:
aFunction(argA, , argC);
(我在函数调用中错过了参数的一些正在进行中的代码)
我的问题是,我怎样才能更轻松地听取这类错误?
我当然可以先把文件丢失,但我也想知道它是否可以在browserify中使用。
答案 0 :(得分:1)
看起来this watchify
的未合并拉取请求可能已经解决了您的问题 - 似乎错误未在gulp-watchify
模块中被正确捕获,因此您永远无法看到它们。
使用不使用gulp-watchify
模块的Browserify和Watchify的官方Gulp recipe可能会取得更大的成功。
似乎问题是Gulp在发生错误时从未被告知。尝试使用此错误处理代码:
(error) => {
gutil.log('[error]', error);
this.emit('end');
}