gpt4 book ai didi

javascript - Gulp.JS,一个来源到一个动态数量的目的地

转载 作者:搜寻专家 更新时间:2023-11-01 00:29:40 25 4
gpt4 key购买 nike

我有一个正在处理的 JavaScript 源文件,我希望它最终位于两个或多个目标文件夹中。如果我将管道链接起来,则可以通过管道连接到多个目的地,但如果我一次将它添加到一个流中,则不会。这使我无法使目标文件夹的数量动态化。

例如做下面的工作

var rebundle = function() {
var stream = bundler.bundle();
stream = stream.pipe(source("bundled.js"));

stream.pipe(gulp.dest(dests[0]))
.pipe(gulp.dest(dests[1]))
.pipe(gulp.dest(dests[2]));

return stream;
};

但以下工作不一致。有时一个文件夹无法输出,有时会输出但缺少一些内容。

var rebundle = function() {
var stream = bundler.bundle();
stream = stream.pipe(source("bundled.js"));

dests.map(function(d) {
stream.pipe(gulp.dest(d));
});

return stream;
};

简而言之,有没有一种方法可以修改它以在一个文件中从一个源文件夹干净地开始时允许动态数量的目标?

版本

  • 吞下 3.9
  • 浏览器化 9

最佳答案

每次调用 stream.pipe() 都会返回一个新流。您必须将 .pipe() 的每个后续调用应用于先前返回的流。

当您执行 stream = stream.pipe(source("bundled.js")) 时,您做对了,但随后在您的 dest.map() 回调你只是将一个接一个的管道添加到同一个流中。这意味着您正在创建大量新流,但这些流永远不会从您的任务中返回,因此 gulp 不会等待它们完成。

您必须每次都存储返回的流,以便在下一次迭代中使用它:

dests.map(function(d) {
stream = stream.pipe(gulp.dest(d));
});

关于javascript - Gulp.JS,一个来源到一个动态数量的目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41643132/

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