尝试使用merge2
将多个流合并到同一目标,但是当我比较工作,合并前2工作和下面的实现的结果时,我遗漏了连接结果文件中的完整文件。
注意:我无法对所有文件运行babel,因为它也在正在使用的TPL上运行,这也会导致应用程序出现致命错误。
在处理这些更改之前,我会接收需要为该任务处理的所有文件,然后拼出需要区别对待的文件:
let widgets = [];
fileNames.forEach(function (item, index, array) {
if (/widgets\/special.+\/special.+\.js/ig.test(item)) {
widgets.push(array.splice(index, 1)[0]);
}
});
然后我合并了流:
return plugins.merge2([
gulp.src(widgets).pipe(plugins.babel({presets: ['es2015']})),
gulp.src(fileNames)
]).pipe(plugins.sourcemaps.init())
.pipe(plugins.concat(targetName))
.pipe(plugins.sourcemaps.write('../sourcemap'))
.pipe(plugins.chmod(777))
.pipe(gulp.dest(destPath))
.on('end', cb);
我怀疑babel可能导致了这个问题所以我修改了我的代码:
return plugins.merge2([
gulp.src(widgets),
gulp.src(fileNames)
]).pipe(plugins.sourcemaps.init())
.pipe(plugins.concat(targetName))
.pipe(plugins.sourcemaps.write('../sourcemap'))
.pipe(plugins.chmod(777))
.pipe(gulp.dest(destPath))
.on('end', cb);
然而,问题仍然存在,似乎只有部分的小部件数组中的文件被连接到同一个文件。我的方法有误吗?有没有人遇到过这个?