Spec-Zone.ru › Yarn 3

Плагины

С момента создания Yarn мы всегда стремились к экспериментированию, развитию и продвижению статус-кво — каждый раз делая один шаг дальше, прокладывая путь для наших последующих действий.

Как вы можете догадаться, эта философия (в сочетании с большим количеством внешних вкладов) требует от нас быстрой итерации, чтобы адаптироваться к различным экспериментам. Сделав большой шаг вперёд, Yarn в версии v2 был переработан для использования новой модульной API, которая может быть расширена с помощью плагинов. В настоящее время большинство наших функций реализованы с помощью этих плагинов — даже yarn add и yarn install являются предварительно установленным плагинами!

  • Что могут делать плагины?
  • Как написать плагин?
  • Официальные плагины
  • Плагины сообщества

Что могут делать плагины?

  • Плагины могут добавлять новые решатели. Решатели — это компоненты, которые отвечают за преобразование диапазонов зависимостей (например, ^1.2.0) в полные квалифицированные ссылки на пакеты (например, npm:1.2.0). Реализовав решатель, вы можете указать Yarn, какие версии являются допустимыми кандидатами для определённого диапазона.

  • Плагины могут добавлять новые загрузчики. Загрузчики — это компоненты, которые берут полные квалифицированные ссылки на пакеты, упомянутые на предыдущем шаге (например, npm:1.2.0), и знают, как получить данные о пакете, к которому они относятся. Загрузчики могут работать с удалёнными пакетами (например, реестром npm), но также могут находить пакеты напрямую из их расположения на диске (или любого другого источника данных).

  • Плагины могут добавлять новые связыватели. После того, как все пакеты были найдены и готовы к установке, Yarn вызовет связыватели для создания файлов, необходимых для корректной работы целей установки. Например, связыватель PnP создаст манифест .pnp.cjs, а связыватель Python — файлы virtualenv.

  • Плагины могут добавлять новые команды. Каждый плагин может предоставлять любое количество команд, которые будут встроены в наш CLI (а также сделают их доступными через yarn --help). Поскольку плагины Yarn динамически связаны с работающим процессом Yarn, они могут быть очень маленькими и гарантированно будут иметь такое же поведение, как ваш менеджер пакетов (что не будет происходить, если вы переисполните, например, обнаружение рабочей области).

  • Плагины могут регистрироваться на некоторые события. Yarn имеет понятие «хуки», где события периодически срабатывают во время жизненного цикла менеджера пакетов. Плагины могут регистрироваться на эти хуки, чтобы добавить свою логику в зависимости от того, что позволяет ядро. Например, хук afterAllInstalled будет вызываться каждый раз, когда метод Project#install завершится — обычно после каждой yarn install.

  • Плагины могут быть интегрированы друг с другом. Каждый плагин имеет возможность вызывать специальные действия, называемые хуками, и регистрировать себя в любом определённом хуке. Например, вы можете создать плагин, который будет выполнять действие каждый раз, когда пакет добавляется как зависимость одного из ваших пространств работы!

Как написать плагин?

У нас есть учебник по этому! Перейдите к Учебнику по плагинам.

Официальные плагины

yarn plugin import <name>
  • constraints — Добавляет новые команды в Yarn для проверки правил проверки кода во всех пространствах работы. Дополнительную информацию см. на специальной странице.

  • exec — Добавляет новый протокол в Yarn (exec:), который динамически генерирует произвольные пакеты вместо их скачивания из известного места. Дополнительную информацию см. на странице плагина.

  • interactive-tools — Добавляет различные команды, предоставляющие более высокий уровень управления вашим проектом с помощью графических интерфейсов терминала (например, yarn upgrade-interactive).

  • stage — Добавляет новую команду в Yarn (yarn stage) для автоматического размещения и коммита всех изменений в файлы, относящиеся к Yarn, в одной строке.

  • typescript — Улучшает опыт работы с TypeScript (например, автоматически добавляет пакеты @types в качестве зависимостей при необходимости). Дополнительную информацию см. на странице плагина.

  • version — Добавляет новый рабочий процесс в Yarn (yarn version) для эффективного управления выпусками в монорепозитории. Дополнительную информацию см. на специальной странице.

  • workspace-tools — Добавляет различные команды, которые делают работу с пространствами работы более удобной (например, yarn workspaces foreach).

Плагины сообщества

yarn plugin import <bundle url>

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

  • plugin-installs от Larry1123 — создание минимальных установок yarn после удаления зависимостей разработки, не относящихся к пространствам работы, пакетов @types, и т. д.

  • yarn.build от Owen Kelly — запуск сборок и тестов параллельно в соответствии с зависимостями вашей рабочей области, если они изменились, и объединение их в готовые приложения для Docker, AWS Lambda или любого другого сервера.

  • licenses от Noah Negin-Ulster — аудит лицензий прямых и косвенных зависимостей для обеспечения соблюдения.

  • semver-up от Noah Negin-Ulster — настраиваемая команда yarn up, которая сохраняет семантические диапазоны версий и группы обновлений.

  • conditions от Nicolò Ribaudo — возможность выбора между различными версиями зависимостей посредством флагов во время установки (во время разработки) и публикации.

  • az-cli-auth от Fish & Richardson P.C — использует az cli для создания маркеров аутентификации при использовании репозиториев azure devops.

  • outdated от Mark Skelton — выводит список устаревших зависимостей, аналогично команде Yarn 1.x outdated.

  • engines от Yaroslav Admin — принудительно устанавливает диапазон версий Node, указанный в поле package.json, в поле engines.node.

Если вы сами написали плагин, не стесняйтесь открыть PR, чтобы добавить его в конец этого списка!

© 2016–present Yarn Contributors
Licensed under the BSD License.
https://v3.yarnpkg.com/features/plugins

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API