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

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

Давайте посмотрим, как это делается. Для примера возьмем следующие задачи:

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

Последовательное выполнение

Для последовательного выполнения задач предназначена функция series. Эта функция параметрами принимает любое количество задач и выполняет их по очереди в порядке перечисления.

Для начала эту функцию нужно импортировать из библиотеки Gulp:

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

Теперь мы можем воспользоваться этой функцией:

function taskD(cb) { series(task1, task2); cb(); } exports.default = taskD;

Можно сразу экспортировать результат работы series, не создавая лишней функции для публичной задачи:

exports.default = series(task1, task2);

Создайте три задачи, выполняющиеся последовательно одна за другой.

Параллельное выполнение

Для параллельного выполнения задач предназначена аналогичная функция parallel(). Давайте посмотрим на ее работу.

Для начала подключим ее:

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

Воспользуемся нашей функцией внутри публичной задачи:

function taskD(cb) { parallel(task1, task2); cb(); } exports.default = taskD;

Либо просто экпортируем результат работы:

exports.default = parallel(task1, task2);

Создайте три задачи, выполняющиеся параллельно.

Комбинации

Функции series и parallel() можно вкладывать в друг друга в любых комбинациях, например, вот так:

exports.default = series(task1, parallel(task2, task3));

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