2015-08-17 16 views
9

Ho una matrice di oggetti simile alla seguente.Gulp.js: attività basata sul ciclo forEach

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

Voglio che il compito di gulp elabori/concatchi ogni voce dell'array, ma non sembra funzionare.

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

Qualsiasi log di errore? – Rokie

risposta

11

probabilmente si dovrebbe essere la fusione dei corsi d'acqua e restituendo il risultato, in modo che il compito completerà al momento opportuno:

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

Grazie Ben, ci proverò. – gkiely

+0

L'ho contrassegnato come la risposta in quanto evidenziava una best practice per strutturare il codice che avevo inviato. Il problema che ho avuto è stato digitato come dettagliato di seguito. – gkiely