2015-08-17 5 views
9

Ich habe ein Array von Objekten, die wie folgt aussehen.Gulp.js: Aufgabe basierend auf forEach Schleife

var bundles = [ 
    { 
    src: 'js/my-component/*.js', 
    bundleName: 'my-component.js' 
    }, 
    { 
    src: 'js/my-other-component/*.js', 
    bundleName: 'my-other-component.js' 
    } 
] 

Ich möchte die schluck Aufgabe/concat im Array jeden Eintrag zu verarbeiten, aber es scheint nicht zu funktionieren.

gulp.task('bundlejs', function(){ 
    return bundles.forEach(function(obj){ 
     return gulp.src(obj.src) 
     .pipe(concat(obj.bundleName)) 
     .pipe(gulp.dest('js/_bundles')) 
    }); 
}); 
+0

Sämtliche Fehlerprotokolle? – Rokie

Antwort

11

Sie sollten wahrscheinlich die Ströme werden verschmelzen und das Ergebnis zurückkehrt, so dass die Aufgabe zu gegebener Zeit abgeschlossen wird:

var es = require('event-stream'); 

gulp.task('bundlejs', function() { 
    return es.merge(bundles.map(function (obj) { 
    return gulp.src(obj.src) 
     .pipe(concat(obj.bundleName)) 
     .pipe(gulp.dest('js/_bundles')); 
    })); 
}); 
+0

Danke Ben, ich werde das versuchen. – gkiely

+0

Ich markierte dies als die Antwort, da es eine Best Practice für die Strukturierung des von mir eingereichten Codes hervorhob. Das Problem, das ich hatte, war Tippfehler wie unten beschrieben. – gkiely