Node.js / Gulp -循环Gulp任务



我想循环遍历一个对象并将文件路径数组传递给gulp。然后对这些文件做一些处理。下面的代码是为了说明目的,实际上不起作用,因为return语句在第一次执行时就终止了循环。

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

这是基本思想。有什么办法吗?

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

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);
});

相关内容

  • 没有找到相关文章

最新更新