我的 Gulp 任务有问题。我使用一个任务来创建多个带有 gulp-mustache 的 html 文件,这样我最后就有两个文件(index_de.html 和 index_en.html)。我有一个 .json 文件,其中包含字符串。一切都很好。但我总是最终得到两个文件都是 de 或 en,而不是每种语言一个文件。我已经尝试过了使用循环创建任务 [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);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)