В предыдущей статье “Gulp - установка и запуск плагина gulp-uglify”, где мы учились устанавливать и запускать плагины под Gulp, мы создавали задачу под этот плагин.
Сами не зная того, тогда мы создали именованную задачу (named task). Как вы помните из вводной статьи “Gulp - знакомство и первый запуск”, в этом менеджере имеется два типа задач - задача по умолчанию (default) и именованная задача (named task).
В этом разделе мы углубимся в вопрос задач в Gulp и рассмотрим детально, каким образом создается именованная задача (named task) или несколько именованных задач (named tasks), как можно объединять именованные задачи (named tasks) в последовательности, как можно вызывать выполнение одной задачи из другой задачи.
Создание named task в Gulp
В менеджере Gulp может существовать тысячи задач, каждая из которых нацелена на получение конкретного результата. Давайте создадим отдельную задачу для конкатенации файлов. Для этой цели существует плагин
. На странице документации этого плагина описан процесс установки и настройки - gulp-concat.1
gulp-concat
Установим плагин
в проект:1
gulp-concat
И создадим в файле
отдельную задачу для этого плагина:1
gulpfile.js
… а также создадим отдельную переменную для этого плагина:
Кстати, если вы еще не задались вопросом, а что это за странные строки -
, 1
gulp.src
, 1
gulp.dest
, то могу вкратце сказать, что это встроенные функции Gulp, каждая из которых выполняет свою задачу.1
gulp.task
Осталось запустить в консоли именованную задачу (named task)
, которая произведет слияние в один файл всех файлов с расширением .css, расположенных в директории css:1
concat
Отлично - мы создали named task!
Создание последовательности named tasks в Gulp
В Gulp можно создавать последовательность задач, в которой выполнение всех задач будет производиться в том порядке, в котором они помещены в очередь. Для этого несколько отдельных именованных задач (named tasks) помещают внутрь задачи по умолчанию (default).
Вместо callback-функции разместим массив, состоящий из списка имен тех именованных задач (named tasks), которые мы хотим поместить в очередь. Фактически, в данном случае выполнение одной задачи будет производиться через вызов другой задачи.
Допустим, у нас имеются две именованные задачи (named tasks):
Поместим их в задачу по умолчанию:
Теперь в консоли достаточно запустить одну команду
на выполнение задачи по умолчанию (default). Тем самым мы запустим выполнение последовательности нескольких отдельных команд - 1
gulp
:1
'concat', 'uglify'
В выводе консоли видим, что сначала запустилась задача
и выполнилась за 7.17 миллисекунд, затем запустилась задача 1
concat
и на ее выполнение ушло 2.64 милисекунды. И затем запустилась задача по умолчанию 1
uglify
, которая выполнилась за 7.04 миллисекунд.1
default
Все прошло успешно.