Jump to content

gulp.js

глоток
Оригинальный автор(ы) Эрик Шоффстолл [1]
Разработчик(и) Блейн Бублик, Эрик Шоффстолл
Первоначальный выпуск 26 сентября 2013 г .; 10 лет назад ( 26 сентября 2013 ) [2]
Стабильная версия
5.0.0 / 29 марта 2024 г .; 4 месяца назад ( 29.03.2024 ) [3]
Репозиторий github /goldpjs /глоток
Написано в JavaScript
Операционная система Linux , MacOS , Windows
Платформа Node.js
Тип Инструментарий
Лицензия МОЯ лицензия [4] [5]
Веб-сайт gulpjs  Edit this on Wikidata

gulp — это с открытым исходным кодом набор инструментов JavaScript , используемый в качестве системы потоковой сборки (аналогично более ориентированной на пакеты Make ) при веб-разработке переднего плана .

Это средство запуска задач, созданное на Node.js и npm , используемое для автоматизации трудоемких и повторяющихся задач, связанных с веб-разработкой, таких как минификация , конкатенация, очистка кеша, модульное тестирование , анализ , оптимизация и т. д. [6]

gulp использует подход «код поверх конфигурации» для определения своих задач и полагается на свои небольшие специализированные плагины для их выполнения. Экосистема gulp включает более 3500 таких плагинов. [7]

глоток [8] — это инструмент сборки на JavaScript, построенный на потоках узлов . Эти потоки облегчают соединение файловых операций через конвейеры . [9] gulp читает файловую систему и передает имеющиеся данные от одного специализированного плагина к другому через .pipe() оператор, выполняющий одну задачу за раз. Исходные файлы не затрагиваются до тех пор, пока не будут обработаны все плагины. Его можно настроить либо на изменение исходных файлов, либо на создание новых. Это дает возможность выполнять сложные задачи путем связывания многочисленных плагинов. Пользователи также могут писать свои собственные плагины для определения своих задач. [10] В отличие от других средств запуска задач, которые запускают задачи по конфигурации, gulp требует знания JavaScript и программирования для определения своих задач. gulp — это система сборки, которая означает, что помимо выполнения задач она также способна копировать файлы из одного места в другое, компилировать , развертывать , создавать уведомления, модульное тестирование, анализ и т. д. [1]

Нужен бегун задач

[ редактировать ]

Обработчики задач, такие как gulp и Grunt, созданы на Node.js, а не на npm, поскольку базовые сценарии npm неэффективны при выполнении нескольких задач.Несмотря на то, что некоторые разработчики предпочитают сценарии npm , потому что они могут быть простыми и легкими в реализации, существует множество способов, в которых gulp и Grunt имеют преимущество друг перед другом, а также над сценариями, предоставляемыми по умолчанию. [11] Grunt запускает задачи, преобразовывая файлы и сохраняя их как новые во временных папках, а выходные данные одной задачи используются в качестве входных данных для другой и так далее, пока выходные данные не достигнут папки назначения. Это включает в себя множество вызовов ввода-вывода и создание множества временных файлов. Принимая во внимание, что потоки gulp через файловую систему не требуют каких-либо из этих временных мест, что уменьшает количество вызовов ввода-вывода и повышает производительность. [12] Grunt использует файлы конфигурации для выполнения задач, тогда как gulp требует, чтобы его файл сборки был закодирован. В Grunt каждый плагин необходимо настроить так, чтобы его местоположение ввода соответствовало выходным данным предыдущего плагина. В gulp плагины автоматически выстраиваются в конвейер. [9]

Операция

[ редактировать ]

Задачи gulp запускаются из интерфейса командной строки (CLI). [11] оболочку и требуют два файла, package.json, который используется для перечисления различных плагинов для gulp, и gulpfile.js (или просто gulpfile), Они, согласно соглашению об инструментах сборки, часто находятся в корневом каталоге исходного кода пакета. Файл gulpfile содержит большую часть логики, необходимой gulp для выполнения задач сборки. Сначала загружаются все необходимые модули, а затем в gulpfile определяются задачи. Все необходимые плагины, указанные в gulpfile, перечислены в разделе devDependities файла package.json. [13] Задача по умолчанию выполняется $gulp. Отдельные задачи могут быть определены с помощью gulp.task и выполняются gulp <task> <othertask>. [14] Сложные задачи определяются путем объединения плагинов с помощью .pipe() оператор. [15]

Анатомия gulpfile

[ редактировать ]

gulpfile — это место, где все операции определяются в gulp. Базовая структура файла gulpfile состоит из необходимых плагинов, включенных вверху, определения задач и задачи по умолчанию в конце. [16]

Любой установленный плагин, необходимый для выполнения задачи, должен быть добавлен в начало файла gulp в качестве зависимости в следующем формате. [14] [15]

//Adding dependenciesvar gulp = require ('gulp');

Затем можно создавать задачи. Задача gulp определяется gulp.task и принимает имя задачи в качестве первого параметра и функцию в качестве второго параметра.

В следующем примере показано создание задач gulp. Первый параметр TaskName является обязательным и указывает имя, под которым может быть выполнена задача в оболочке. [17]

gulp.task('taskName', function () {  //do something});

Альтернативно можно создать задачу, выполняющую несколько предопределенных функций. Эти функции передаются в качестве второго параметра в виде массива.

function fn1 () {  // do something}function fn2 () { // do something}// Task with array of function namesgulp.task('taskName', gulp.parallel(fn1, fn2));

Задача по умолчанию

[ редактировать ]

Задача по умолчанию должна быть определена в конце gulpfile. Им может управлять gulp команда в оболочке. В приведенном ниже случае задача по умолчанию ничего не делает. [15]

// Gulp default taskgulp.task('default', fn);

Задача по умолчанию используется в gulp для автоматического запуска любого количества зависимых подзадач, определенных выше, в последовательном порядке. gulp также может отслеживать исходные файлы и запускать соответствующую задачу при внесении в файлы изменений. Подзадачи указываются как элементы массива во втором параметре. Процесс можно запустить, просто запустив задачу по умолчанию: gulp команда. [16]

Примеры задач

[ редактировать ]

Задача изображения

[ редактировать ]

Определение модуля может находиться в начале Gulpfile.js вот так:

var imagemin = require('gulp-imagemin');

Последующая задача изображения оптимизирует изображения. gulp.src() извлекает все изображения с расширением .png, .gif или .jpg в каталоге images-orig/.

.pipe(imagemin()) направляет найденные изображения посредством процесса оптимизации и с .pipe(gulp.dest()) оптимизированные изображения сохраняются в папке images/ . Без gulp.dest() изображения действительно будут оптимизированы, но не сохраняются. [18] Поскольку оптимизированные изображения сохраняются в другой папке, исходные изображения остаются неизменными. [15]

// Images taskgulp.task('images', function () {    return gulp.src('images/*.{png,gif,jpg}')        .pipe(imagemin())        .pipe(gulp.dest('dist/images/'));});

Задача сценариев

[ редактировать ]

В следующем примере все файлы JavaScript из каталога scripts/ оптимизированы с помощью .pipe(uglify()) и gulp.dest('scripts/') перезаписывает исходные файлы выходными данными. [19] Для этого сначала необходимо вернуться к нужному плагину gulp-uglify. [20] в установщике пакетов npm и в начале gulpfile модуль должен быть определен.

// Script taskgulp.task('scripts', function () {    return gulp.src('scripts/*.js')        .pipe(uglify())        .pipe(gulp.dest('scripts/'));});

Посмотреть задачу

[ редактировать ]

Watch-задача служит для реагирования на изменения в файлах. В следующем примере задачи с именами скрипты и изображения вызываются при изменении любого из файлов или изображений JavaScript в указанных каталогах. [21]

// Rerun the task When a file changesgulp.task('watch', function (cb) {    gulp.watch('scripts/js/**', scripts);    gulp.watch('images/**', images);    cb();});

Кроме того, можно выполнить обновление содержимого браузера с помощью Watch-задач. [22] Для этого существует множество опций и плагинов.

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б Джед Мао; Максимилиан Шмитт; Томаш Стриевский; Кэри Кантри Холт; Уильям Любельски (2014). Разработка Gulp Edge (1-е изд.). Пресс «Кровоточащая грань». ISBN  978-1-939902-14-6 .
  2. ^ «Дата выпуска версии 1.0.0» . Проверено 31 декабря 2020 г.
  3. ^ «Релизы · gulpjs/gulp» . Гитхаб . Проверено 31 декабря 2020 г.
  4. ^ «Файл ЛИЦЕНЗИИ на GitHub» . Гитхаб . Проверено 31 декабря 2020 г.
  5. ^ «Поле лицензии от gulp — npm» . Проверено 31 декабря 2020 г.
  6. ^ «Строительство с Gulp — потрясающий журнал» . Smashingmagazine.com . 11 июня 2014 года . Проверено 14 декабря 2016 г.
  7. ^ «Реестр плагинов gulp.js» . Gulpjs.com . Проверено 14 декабря 2016 г.
  8. ^ "gulpjs/глоток" . Гитхаб . Проверено 22 сентября 2016 г.
  9. ^ Перейти обратно: а б «Справочник по подстеку/потоку: как писать программы узлов с потоками» . Гитхаб . Проверено 14 декабря 2016 г.
  10. ^ "gulpjs/глоток" . Гитхаб . Проверено 22 сентября 2016 г.
  11. ^ Перейти обратно: а б "gulpjs/глоток" . Гитхаб . Проверено 23 сентября 2016 г.
  12. ^ «Глоток для начинающих» . CSS-трюки. 01.09.2015 . Проверено 14 декабря 2016 г.
  13. ^ «Установить | Документация npm» . docs.npmjs.com . Проверено 22 сентября 2016 г.
  14. ^ Перейти обратно: а б "gulpjs/глоток" . Гитхаб . Проверено 23 сентября 2016 г.
  15. ^ Перейти обратно: а б с д Мейнард, Трэвис (2015). Начало работы с Gulp . Packt Publishing Ltd. ISBN  9781784393472 .
  16. ^ Перейти обратно: а б «Введение в Gulp.js — SitePoint» . 10 февраля 2014 г. Проверено 23 сентября 2016 г.
  17. ^ «gulp/API.md в версии 4.0 · gulpjs/gulp · GitHub» . Гитхаб. 12 мая 2016 г. Проверено 14 декабря 2016 г.
  18. ^ «Начните работу с Gulp.js — оптимизируйте веб-сайты, автоматизируйте рабочие процессы» . Магазин.phlow.de . 25 мая 2014 г. Архивировано из оригинала 16 июня 2017 г. Проверено 14 декабря 2016 г.
  19. ^ «Внешний рабочий процесс с Gulp — Лихтенекер» . Liechtenecker.at . 29 мая 2015 г. Проверено 14 декабря 2016 г.
  20. ^ «глотать-уродовать» . Npmjs.com . Проверено 14 декабря 2016 г.
  21. ^ «глоток-часы» . Npmjs.com . Проверено 23 сентября 2016 г.
  22. ^ «Браузерсинк + Gulp.js» . Browsersync.io . Проверено 14 декабря 2016 г.

Литература

[ редактировать ]
  • Джед Мао; Максимилиан Шмитт; Томаш Стриевский; Кэри Кантри Холт; Уильям Любельски (2014). Разработка Gulp Edge (1-е изд.). Пресс «Кровоточащая грань». ISBN  978-1-939902-14-6 .
  • Ден Оделл (2014). «Инструменты сборки и автоматизация». Программирование, возможности и инструменты для разработки на профессиональном JavaScript . Апресс. ISBN  978-1-4302-6268-8 .
  • Мейнард, Трэвис (2015). Начало работы с Gulp . Packt Publishing Ltd. ISBN  9781784393472 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9011f9ec864005b801a984166ed2e7e7__1719628920
URL1:https://arc.ask3.ru/arc/aa/90/e7/9011f9ec864005b801a984166ed2e7e7.html
Заголовок, (Title) документа по адресу, URL1:
gulp.js - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)