【问题标题】:Node.js / Gulp - Looping Through Gulp TasksNode.js / Gulp - 循环执行 Gulp 任务
【发布时间】:2015-10-18 07:28:01
【问题描述】:

我想遍历一个对象,并在每次迭代时将一组文件路径传递给 gulp.src,然后对这些文件进行一些处理。下面的代码仅用于说明目的,实际上并不能正常工作,因为 return 语句在第一遍就终止了循环。

gulp.task('js', function(){
    for (var key in buildConfig.bundle) {
        return gulp.src(bundleConfig.bundle[key].scripts)
            .pipe(concat(key + '.js'));
            // DO STUFF
    }
});

这是基本的想法。关于如何做到这一点的任何想法?

【问题讨论】:

    标签: javascript node.js build stream gulp


    【解决方案1】:

    我能够使用合并流来解决这个问题。如果有人有兴趣,这里是代码。这个想法是在循环中创建一个流数组,并在完成迭代时合并它们:

    var merge = require('merge-stream');
    
    gulp.task('js', function(){
    
        // Init vars
        var jsBundleStreams = [];
        var i = 0;
    
        // Create array of individual bundle streams
        for (var key in buildConfig.bundle) {
            jsBundleStreams[i] = gulp.src(bundleConfig.bundle[key].scripts)
                .pipe(concat(key + '.js'))
                .pipe(gulp.dest('./public/papasteftest/'));
            i++;
        }
    
        // Merge and return streams
        return merge.apply(this, jsBundleStreams);
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多