gpt4 book ai didi

javascript - 我如何将事件发送到 gulp-tap 的父流中

转载 作者:行者123 更新时间:2023-11-29 23:54:33 25 4
gpt4 key购买 nike

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

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

为了处理多个文件,我使用了 approach described in the gulp recipes .

但是使用它并读取 docs on gulp-tap我不确定如何让它将错误发送到父流中。

我想做的是:

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
});

关于javascript - 我如何将事件发送到 gulp-tap 的父流中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42007556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com