Стриминговая система сборки, с очень маленьким API
Статус: черновик.
Для работы нужен Node.js, включающий в себя NPM (или другой пакетный менеджер).
- Установить один раз глобально Gulp CLI (интерфейс командной строки)
npm install gulp-cli -g
После этого следует закрыть и заново открыть окно терминала (Bash/Git-Bash). - Установить локально в проект
npm install gulp --save-dev
- Создать в проекте конфигурационный файл
touch gulpfile.js
У gulp очень простое API, основных методов всего четыре:
gulp.src(globs[, options])
- указывает откуда прочитать файлыgulp.dest(path[, options])
- куда записать файлыgulp.task(name [, deps] [, fn])
- группирует задачи по имениgulp.watch(globs[, opts][, fn])
- запускает слежение за определенными файлами
После чтения файлов через метод src()
они попадают в поток т.н. трубу (pipe).
Файлы "текут" от src()
к dest()
, между этими точками они могут трансформироватся различными плагинами.
gulp.task('templates', function() {
return gulp.src('client/templates/*.jade') // читаем файлы
.pipe(jade()) // плагины
.pipe(minify())
.pipe(gulp.dest('build/templates')) // записываем на диск
});
gulp.watch('client/templates/*.jade', function(event) {
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
}));
У Gulp версии 4 есть дополнительные методы:
gulp.parallel
- запускеает задачи в паралельном режимеgulp.series
- запускеает задачи в последовательном режимеgulp.symlink
- записывает файлы в симлинкиgulp.lastRun
- хранит метку времени последненго успешного запускаgulp.tree
- используется в терминале для получения "дерева задач"gulp.registry
- управление регистром
Наиболее востребованными являются parallel()
и series()
. Они предназначены для контроля выполнения задач. series()
используется когда для следующей задачи нужен результат работы предидущей задачи. Остальные зачачи следует запускать паралельно используя parallel()
.