Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何将事件发射到gulp tap';s父流_Javascript_Node.js_Gulp_Browserify_Node Streams - Fatal编程技术网

Javascript 我如何将事件发射到gulp tap';s父流

Javascript 我如何将事件发射到gulp tap';s父流,javascript,node.js,gulp,browserify,node-streams,Javascript,Node.js,Gulp,Browserify,Node Streams,我正在设置一个gulpfile,用于在开发期间将多个JavaScript文件捆绑到多个捆绑包中 因为我想观察这个过程,如果其中一个文件中有错误(语法或其他错误),我就不想让它退出,所以我需要正确地向父流发出end事件 用于处理我正在使用的多个文件 但是使用它并读取,我不确定如何让它将错误发送到父流中 我想做的是: gulp.task('bundle', () => ( gulp.src(['whatevs/*.js'], { read: false }) .pipe

我正在设置一个gulpfile,用于在开发期间将多个JavaScript文件捆绑到多个捆绑包中

因为我想观察这个过程,如果其中一个文件中有错误(语法或其他错误),我就不想让它退出,所以我需要正确地向父流发出
end
事件

用于处理我正在使用的多个文件

但是使用它并读取,我不确定如何让它将错误发送到父流中

我想做的是:

gulp.task('bundle', () => (
    gulp.src(['whatevs/*.js'], { read: false })
        .pipe($.tap((file) => {
            file.contents = browserify( // eslint-disable-line no-param-reassign
                file.path,
                { debug: true, fullPaths: true }
            ).bundle();
        }))
        .on('error', function handleBrowserifyError(err) {
            this.emit('end');
        })
        .pipe(gulp.dest('bundles/'))
));

如果我将回调传递给
bundle()
调用,我可以看到错误,但我丝毫不知道如何将其返回到父流中。

我这样做:

gulp.task('bundle', () => {
    const scriptStream = gulp.src(['whatevs/*.js'], { read: false })
        .pipe($.tap((file) => {
            file.contents = browserify( // eslint-disable-line no-param-reassign
                file.path,
                { debug: true, fullPaths: true }
            )
            .bundle()
            .on('error', () => scriptStream.emit('end'));
        }))
        .on('error', Function.prototype) // prevents crashing
        .pipe(gulp.dest('bundles/'));
    return scriptStream
});