#
КонцепцииСледующие концепции необходимы для понимания документации API. На них будут ссылаться повсюду, вернитесь к этой странице для подробных объяснений.
Если вы здесь новичок, начните с Руководства по началу работы.
#
VinylВинил - это объект метаданных, описывающий файл. Основными свойствами экземпляра Vinyl являются path
и contents
- основные аспекты файла в вашей файловой системе. Виниловые объекты можно использовать для описания файлов из многих источников - в локальной файловой системе или в любом удаленном хранилище.
#
Vinyl адаптерыХотя Vinyl предоставляет способ описания файла, необходим способ доступа к этим файлам. Доступ к каждому источнику файла осуществляется с помощью адаптера Vinyl.
Адаптер предоставляет:
- Метод с сигнатурой
src(globs, [options])
и возвращает поток, который производит объекты Vinyl. - Метод с сигнатурой
dest(folder, [options])
и возвращает поток, который производит объекты Vinyl. - Любые дополнительные методы, специфичные для их среды ввода/вывода, такие как метод
symlink
, который предоставляетvinyl-fs
. Они всегда должны возвращать потоки, которые производят и/или потребляют объекты Vinyl.
#
Задачи (Таски)Каждая задача gulp - это асинхронная функция JavaScript, которая либо принимает обратный вызов при первой ошибке, либо возвращает поток, обещание, эмиттер событий, дочерний процесс или наблюдаемое. Из-за некоторых ограничений платформы синхронные задачи не поддерживаются.
Для более подробного объяснения смотрите Создание задач.
#
GlobsГлоб - это строка буквенных символов и/или подстановочных знаков, таких как *
, **
или !
, используемая для сопоставления путей к файлам. Globbing - это поиск файлов в файловой системе с помощью одного или нескольких глобов.
Если у вас нет опыта работы с глобами, см. Объяснение глобов.
#
Базовый глобБазовый глоб - иногда называемая родительским элементом глоба - это сегмент пути перед любыми специальными символами в строке глоба. Таким образом, базовый глоб /src/js/**.js
- это /src/js/
. Все пути, соответствующие глобу, гарантированно имеют общую базу глоба - этот сегмент пути не может быть переменным.
Экземпляры винила, генерируемые src()
, создаются с базовым набором glob в качестве их свойства base
. При записи в файловую систему с помощью dest()
, base
будет удален из пути вывода для сохранения структуры каталогов.
Для получения более подробной информации смотрите репозиторий glob-parent.
#
Статистика файловой системыМетаданные файла предоставляются как экземпляр Node fs.Stats
. Он доступен как свойство stat
в ваших экземплярах Vinyl и используется внутри для определения того, представляет ли объект Vinyl каталог или символическую ссылку. При записи в файловую систему разрешения и значения времени синхронизируются из свойства объекта Vinyl stat
.
#
Режимы файловой системыРежимы файловой системы определяют, какие разрешения существуют для файла. Большинство файлов и каталогов в вашей файловой системе будут иметь достаточно разрешительный режим, позволяющий gulp читать / записывать / обновлять файлы от вашего имени. По умолчанию gulp создает файлы с теми же разрешениями, что и запущенный процесс, но вы можете настроить режимы с помощью параметров в src()
, dest()
и т. д. Если у вас возникли проблемы с разрешениями (EPERM), проверьте режимы в ваших файлах.
#
МодулиGulp состоит из множества небольших модулей, объединенных вместе для слаженной работы. Используя semver в небольших модулях, мы можем выпускать исправления ошибок и функции без публикации новых версий gulp. Часто, когда вы не видите прогресса в основном репозитории, работа выполняется в одном из этих модулей.
Если у вас возникли проблемы, убедитесь, что ваши текущие модули обновлены с помощью команды npm update
. Если проблема не исчезнет, откройте вопрос в репозитории отдельного проекта.
- undertaker - система регистрации заданий
- vinyl - виртуальные файловые объекты
- vinyl-fs - виниловый адаптер для вашей локальной файловой системы
- glob-watcher - наблюдатель за файлами
- bach - оркестровка задач с использованием
series()
иparallel()
- last-run - отслеживает время последнего выполнения задачи
- vinyl-sourcemap - встроенная поддержка исходной карты
- gulp-cli - интерфейс командной строки для взаимодействия с gulp