Публичные и приватные задачи Gulp
Для работы Gulp
необходим специальный файл gulpfile.js
, размещаемый в корневой папке проекта. В этом файле размещаются задачи для Gulp
. Эти задачи представляют собой функции JavaScript. Создадим указанный файл и подключим к нему нашу библиотеку:
gulpfile.jslet gulp = require('gulp');
Создадим функцию с нашей первой задачей и экспортируем ее:
gulpfile.jslet gulp = require("gulp");
function task(cb) {
console.log("my first task completed!");
// специальный коллбэк
cb();
}
exports.default = task;
Объяснение cb
В функцию с задачей параметром попадает функция-коллбэк, которая должна быть вызвана в конце задачи, это делается для того, чтобы уведомить Gulp
о завершение задачи и возможности приступать к следующей задаче:
gulpfile.jsfunction task(cb) {
console.log("my first task");
// вызываем коллбэк
cb();
}
Запуск
Поскольку задача default
для Gulp
является задачей по умолчанию, запустить её можно командой:
gulp
Публичные задачи
Пусть у нас есть несколько задач:
gulpfile.jsfunction taskD(cb) {
console.log("taskD");
cb();
}
function task1(cb) {
console.log("task1");
cb();
}
function task2(cb) {
console.log("task2");
cb();
}
Можно сделать сколько угодно задач, однако, только одна задача может быть основной - та, которую мы экспортируем по умолчанию:
gulpfile.jsexports.default = taskD;
Как вы уже знаете, такая задача может быть запущена через командную строку следующей командой:
gulp
Остальные задачи также могут быть экспортированы. Экспортированные задачи называются публичными, так как они создаются для их последующего запуска через командную строку:
gulpfile.jsexports.task1 = task1;
exports.task2 = task2;
В нашем случае для запуска первой и второй задачи в командной строке нужно выполнить следующее:
gulp task1
gulp task2
Приватные задачи
Пусть у нас есть две задачи:
gulpfile.jsfunction task1(cb) {
console.log("task1");
cb();
}
function task2(cb) {
console.log("task2");
cb();
}
Пусть у нас также есть еще одна задача, вызывающая внутри себя остальные задачи:
gulpfile.jsfunction taskD(cb) {
task1(cb);
task2(cb);
cb();
}
Именно эту задачу мы и будем экспортировать. У нас есть одна задача для экспорта которую можно назвать публичной, и две вспомогательные задачи которые можно назвать приватные, приватные используются только внутри функций публичных задач:
gulpfile.jsexports.default = taskD;