Композиции на задачи в Gulp

Задачите в Gulp могат да се комбинират в групи (композиции), като задачите в тях ще бъдат изпълнени последователно или паралелно.

Нека да разгледаме как се прави това. За пример ще вземем следните задачи:

javascriptfunction task1(cb) {
  cb();
}
function task2(cb) {
  cb();
}

Последователно изпълнение

За последователно изпълнение на задачи е предназначена функцията series. Тази функция приема като параметри произволен брой задачи и ги изпълнява една след друга в реда на посочване.

Първо тази функция трябва да бъде импортирана от библиотеката Gulp:

javascriptconst { series } = require('gulp');

Сега можем да използваме тази функция:

javascriptfunction taskD(cb) {
  series(task1, task2);
  cb();
}

exports.default = taskD;

Може директно да експортираме резултата от работата на series, без да създаваме допълнителна функция за публична задача:

javascriptexports.default = series(task1, task2);
Задание 1

Създайте три задачи, които се изпълняват последователно една след друга.

Паралелно изпълнение

За паралелно изпълнение на задачи е предназначена аналогичната функция parallel(). Нека разгледаме нейната работа.

Първо я включваме:

javascriptconst { parallel } = require('gulp');

Ще използваме нашата функция вътре в публична задача:

javascriptfunction taskD(cb) {
  parallel(task1, task2);
  cb();
}

exports.default = taskD;

Или просто експортираме резултата от работата:

javascriptexports.default = parallel(task1, task2);
Задание 2

Създайте три задачи, които се изпълняват паралелно.

Комбинации

Функциите series и parallel() могат да се влагат една в друга във всякакви комбинации, например ето така:

javascriptexports.default = series(task1, parallel(task2, task3));
Задание 3

Създайте пет задачи. Измислете примери за комбинации с тези задачи.