Тип | Toolkit |
---|---|
Розробник | Fractal and contributors of the GitHub community |
Стабільний випуск | 4.0.0 (31 грудня, 2017[1]) |
Платформа | Cross-platform |
Операційна система | кросплатформова програма |
Мова програмування | JavaScript |
Доступні мови | JavaScript |
Ліцензія | MIT License[2] |
Репозиторій | github.com/gulpjs/gulp |
Вебсайт | gulpjs.com |
Gulp — таск-менеджер для автоматичного виконання завдань (наприклад, мініфікаціі, тестування, об'єднання файлів), написаний на мові програмування JavaScript. Програмне забезпечення використовує командний рядок для запуску завдань, визначених у файлі Gulpfile[3]. Створено як відгалуження від проекту Grunt, щоб взяти з нього найкращі практики[4]. Поширюється через менеджер пакетів Npm під MIT ліцензією[5].
На відміну від Grunt код завдань записують JavaScript кодом, а не у вигляді конфігураційного файлу[6].
Станом на 2017-й рік налічується більше 3100 плагінів для Gulp[7].
Взаємодії між частинами програми реалізують за допомогою оператора .pipe()
, виконуючи по одному завданню за раз, не зачіпаючи вихідні файли. Це дає можливість комбінації плагінів в будь-якій послідовності і кількості.
Так само в Gulp вдосконалена система збирання. Це означає, що крім запуску завдань, можна також копіювати файли з місця на місце, компілювати і розгортати проект в новому оточенні.
Файл містить підключення плагінів, функції завдань та завдання за замовчуванням наприкінці.
Будь-який необхідний плагін підключається на початку файлу. Перед цим плагіни повинні бути інстальовані командою npm install.
//Adding dependencies
var gulp = require ( 'gulp');
var gutil = require ( 'util-gulp');
Завдання створюють за допомогою gulp.task, в якому першим аргументом є назва завдання, а другим аргументом анонімна функція.
//Defining tasks
gulp.task ( 'taskName', function () {
//do something
});
Можна написати завдання яке виконує декілька функцій. Список функцій передаються 2 аргументом у вигляді масиву.
function fn1 () {
// do something
}
function fn2 () {
// Do something else
}
// Task with array of function names
gulp.task ( 'taskName', ['fn1','fn2']);