将gulp流合并到同一目的地

时间:2016-12-29 01:20:42

标签: javascript node.js stream gulp

尝试使用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);

然而,问题仍然存在,似乎只有部分的小部件数组中的文件被连接到同一个文件。我的方法有误吗?有没有人遇到过这个?

0 个答案:

没有答案