Gulp — таск-менеджер для автоматичного виконання завдань (наприклад, мініфікаціі, тестування, об'єднання файлів), написаний на мові програмування JavaScript. Програмне забезпечення використовує командний рядок для запуску завдань, визначених у файлі Gulpfile[3]. Створено як відгалуження від проекту Grunt, щоб взяти з нього найкращі практики[4]. Поширюється через менеджер пакетів Npm під MIT ліцензією[5].

gulp
Тип Toolkit
Розробник Fractal and contributors of the GitHub community
Стабільний випуск 4.0.0 (31 грудня, 2017; 6 років тому (2017-12-31)[1])
Платформа Cross-platform
Операційна система кросплатформова програма
Мова програмування JavaScript
Доступні мови JavaScript
Ліцензія MIT License[2]
Репозиторій github.com/gulpjs/gulp
Вебсайт gulpjs.com

На відміну від Grunt код завдань записують JavaScript кодом, а не у вигляді конфігураційного файлу[6].

Станом на 2017-й рік налічується більше 3100 плагінів для Gulp[7].

Взаємодії між частинами програми реалізують за допомогою оператора .pipe() , виконуючи по одному завданню за раз, не зачіпаючи вихідні файли. Це дає можливість комбінації плагінів в будь-якій послідовності і кількості.

Так само в Gulp вдосконалена система збирання. Це означає, що крім запуску завдань, можна також копіювати файли з місця на місце, компілювати і розгортати проект в новому оточенні.

Анатомія gulpfile ред.

Файл містить підключення плагінів, функції завдань та завдання за замовчуванням наприкінці.

Плагіни ред.

Будь-який необхідний плагін підключається на початку файлу. Перед цим плагіни повинні бути інстальовані командою npm install.

[8][9]

//Adding dependencies
var gulp = require ( 'gulp');
var gutil = require ( 'util-gulp');


Завдання ред.

Завдання створюють за допомогою gulp.task, в якому першим аргументом є назва завдання, а другим аргументом анонімна функція.

[10]

//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']);

Див. також ред.

Примітки ред.

  1. gulp changelog. Архів оригіналу за 1 травня 2019. Процитовано 11 січня 2018.
  2. License to github.com (англ.). Архів оригіналу за 1 травня 2019. Процитовано 30 травня 2016.
  3. An Introduction to Gulp.js. Архів оригіналу за 14 серпня 2018. Процитовано 13 серпня 2018.
  4. / Gulp - як ковток свіжого повітря після Grunt. Архів оригіналу за 12 березня 2017. Процитовано 13 серпня 2018.
  5. LICENSE. Архів оригіналу за 1 травня 2019. Процитовано 13 серпня 2018.
  6. Gulp або Grunt, та все одно. Архів оригіналу за 12 березня 2017. Процитовано 13 серпня 2018.
  7. packages with keyword 'gulpplugin'
  8. gulpjs/gulp. GitHub. Архів оригіналу за 4 січня 2020. Процитовано 23 вересня 2016.
  9. Maynard, Travis (2015). Getting Started with Gulp. Packt Publishing Ltd. ISBN 9781784393472.
  10. gulp/API.md at 4.0 · gulpjs/gulp · GitHub. GitHub. 12 травня 2016. Архів оригіналу за 6 березня 2017. Процитовано 14 грудня 2016.