使用循环运行 Gulp 任务

Run Gulp tasks with loop(使用循环运行 Gulp 任务)
本文介绍了使用循环运行 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 任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

在开发JS过程中,会经常遇到两个小数相运算的情况,但是运算结果却与预期不同,调试一下发现计算结果竟然有那么长一串尾巴。如下图所示: 产生原因: JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会
问题描述: 在javascript中引用js代码,然后导致反斜杠丢失,发现字符串中的所有\信息丢失。比如在js中引用input type=text onkeyup=value=value.replace(/[^\d]/g,) ,结果导致正则表达式中的\丢失。 问题原因: 该字符串含有\,javascript对字符串进行了转
Rails/Javascript: How to inject rails variables into (very) simple javascript(Rails/Javascript:如何将 rails 变量注入(非常)简单的 javascript)
CoffeeScript always returns in anonymous function(CoffeeScript 总是以匿名函数返回)
Ordinals in words javascript(javascript中的序数)
getFullYear returns year before on first day of year(getFullYear 在一年的第一天返回前一年)