Создание задач#
Каждая задача gulp - это асинхронная функция JavaScript - функция, которая принимает обратный вызов сначала с ошибкой или возвращает поток, промис, эмиттер событий, дочерний процесс или наблюдаемый (подробнее об этом позже). Из-за некоторых ограничений платформы синхронные задачи не поддерживаются, хотя есть довольно изящная альтернатива.
Экспортирование#
Задачи могут считаться публичными или приватными.
- Публичные задачи экспортируются из вашего gulpfile, что позволяет запускать их с помощью команды
gulp. - Приватные задачи предназначены для внутреннего использования, обычно как часть композиции
series()илиparallel().
Частная задача выглядит и действует как любая другая задача, но конечный пользователь никогда не сможет выполнить ее самостоятельно. Чтобы зарегистрировать задачу публично, экспортируйте ее из своего файла gulpfile.

Составление задач#
Gulp предоставляет два мощных метода композиции, series() и parallel(), позволяя объединять отдельные задачи в более крупные операции. Оба метода принимают любое количество функций задач или составных операций. series() и parallel() могут быть вложены внутри себя или друг в друга на любую глубину.
Чтобы ваши задачи выполнялись по порядку, используйте метод series().
Чтобы задачи выполнялись с максимальным параллелизмом, объедините их с методом parallel().
Задачи составляются сразу после вызова series() или parallel(). Это позволяет варьировать композицию вместо условного поведения внутри отдельных задач.
series() и parallel() могут быть вложены на любую произвольную глубину.
Когда выполняется составная операция, каждая задача будет выполняться каждый раз, когда на нее ссылаются. Например, задача clean, на которую ссылаются перед двумя разными задачами, будет запущена дважды и приведет к нежелательным результатам. Вместо этого выполните рефакторинг clean задачи, чтобы она была указана в окончательной композиции.
Если у вас есть такой код:
Переходите на это: