Run Gulp tasks with loop(使用循环运行 Gulp 任务)
问题描述
我的 Gulp 任务有问题.我使用一项任务来创建多个带有 gulp-mustache 的 html 文件,因此最后我有两个文件(index_de.html 和 index_en.html).我有一个 .json 文件,其中包含字符串.一切正常.但我总是最终得到两个文件都是 de 或 en,而不是每种语言一个文件.我已经尝试过使用循环[gulp]创建任务,但这并没有没用.
I have a problem with my Gulp tasks. I use one task to create multiple html files with gulp-mustache, so that I have two files (index_de.html and index_en.html) at the end. I have a .json file, that contains the strings. It all works fine. But I always end up with either both files being de or en, instead of one file per language. I already tried creating tasks using a loop [gulp], but that doesn't work.
澄清:两个文件包含相同的内容.总是.看起来是随机的语言,但它总是一样的.
to clarify: Both files contain the same content. Always. Seems randomly what language it will be, but it's always the same.
我的 Gulp 任务如下所示:
My Gulp tasks looks like the following:
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).
I think an option here is to merge a series of gulp.src()
streams and return the merged streams. Here is your code modified to use the merge-stream
npm package (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);
});
这篇关于使用循环运行 Gulp 任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用循环运行 Gulp 任务
- 如何显示带有换行符的文本标签? 2022-01-01
- 如何调试 CSS/Javascript 悬停问题 2022-01-01
- 使用 iframe URL 的 jQuery UI 对话框 2022-01-01
- 如何向 ipc 渲染器发送添加回调 2022-01-01
- 是否可以将标志传递给 Gulp 以使其以不同的方式 2022-01-01
- 我不能使用 json 使用 react 向我的 web api 发出 Post 请求 2022-01-01
- 在不使用循环的情况下查找数字数组中的一项 2022-01-01
- 从原点悬停时触发 translateY() 2022-01-01
- 为什么我的页面无法在 Github 上加载? 2022-01-01
- 为什么悬停在委托事件处理程序中不起作用? 2022-01-01