Próbuję dynamicznie tworzyć zadania (minify i concat) na podstawie obiektu jsFiles. Klucz poda docelową nazwę pliku, a tablica zawiera pliki src:. Kiedy uruchamiam łyk, widzę wszystkie nazwy zadań, które są uruchamiane, ale zapisuje tylko ostatni klucz, który jest w tym przypadku group2.js. Co jest nie tak?Tworzenie zadań za pomocą pętli [gulp]
// imports here
var jsFiles =
{
group1:[file1.js,file2.js],
group2:[file2.js,file3.js]
};
for (var key in jsFiles)
{
gulp.task(key, function() {
return gulp.src(jsFiles[key])
.pipe(jshint())
.pipe(uglify())
.pipe(concat(key + '.js')) // <- HERE
.pipe(gulp.dest('public/js'));
});
}
var defaultTasks = [];
for (var key in jsFiles)
{
defaultTasks.push(key);
}
gulp.task('default', defaultTasks);
To rozwiązanie nie działa dla mnie. Wydaje się, że createTask (key) to za mało. Jeśli nie wywołasz jawnie gulp.task (key) gulp nie będzie mógł znaleźć zadania, gdy wykona domyślne zadanie. Skończyłem z wykorzystaniem odpowiedzi Oaleynika. – Chris
Jak mogę uruchomić wszystkie zadania asynchronicznie? –