3

我使用以下 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();

});

但是今天 browserify 进程挂起而没有发送错误事件,经过数小时的跟踪和错误我发现这是因为这样的事情:

aFunction(argA, , argC);

(一些正在进行的代码,我错过了函数调用中的参数)

我的问题是,我怎样才能更容易地听到这些错误?

我当然可以先对文件进行 lint,但我也想知道它是否可以在 browserify 中实现。

4

1 回答 1

1

看起来这个未合并的拉取请求watchify可能已经解决了您的问题 - 错误似乎没有在gulp-watchify模块中正确捕获,因此您永远看不到它们。

使用不使用该模块的 Browserify 和 Watchify的官方Gulp 配方可能会取得更大的成功。gulp-watchify


问题似乎在于 Gulp 在发生错误时从未被告知。尝试使用此错误处理代码:

(error) => { 
    gutil.log('[error]', error); 
    this.emit('end');
}
于 2016-08-02T13:30:43.057 回答