gpt4 book ai didi

javascript - 使用循环运行 Gulp 任务

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

我的 Gulp 任务有问题。我使用一个任务用 gulp-mustache 创建多个 html 文件,所以最后我有两个文件(index_de.html 和 index_en.html)。我有一个 .json 文件,其中包含字符串。一切正常。但我总是以两个文件都是 de 或 en 结束,而不是每种语言一个文件。我已经试过了creating tasks using a loop [gulp] ,但这不起作用。

编辑:澄清:两个文件包含相同的内容。总是。似乎随机会是什么语言,但它总是一样的。

我的 Gulp 任务如下所示:

gulp.task('mustache', function () {
console.log('Found '+Object.keys(strings).length+' languages.');
for (var l in strings) {
var lang = strings[l];
(function(lang, l) {
gulp.src(buildpath+'/index.html')
.pipe(mustache(lang))
.pipe(rename('index_'+l+'.html'))
.pipe(compressor({
'remove-intertag-spaces': true,
'compress-js': true,
'compress-css': true
}))
.pipe(gulp.dest(destpath+'/'));
})(lang, l);
}
});

最佳答案

我认为这里的一个选项是合并一系列 gulp.src() 流并返回合并后的流。这是您修改后的代码以使用 merge-stream npm 包 ( https://www.npmjs.com/package/merge-stream )。

var mergeStream = require('merge-stream');

gulp.task('mustache', function () {
console.log('Found ' + Object.keys(strings).length + ' languages.');
var tasks = [];
for (var l in strings) {
var lang = strings[l];
tasks.push(
gulp.src(buildpath + '/index.html')
.pipe(mustache(lang))
.pipe(rename('index_' + l + '.html'))
.pipe(compressor({
'remove-intertag-spaces': true,
'compress-js': true,
'compress-css': true
}))
.pipe(gulp.dest(destpath + '/'))
);
}
return mergeStream(tasks);
});

关于javascript - 使用循环运行 Gulp 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286412/

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