Композиции задач 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

Создайте пять задач. Придумайте примеры комбинаций с этими задачами.