Spec-Zone.ru › Node.js 16 LTS

Corepack

Стабильность: 1 - Экспериментальная

Corepack — это экспериментальный инструмент для управления версиями менеджеров пакетов. Он предоставляет бинарные прокси для каждого поддерживаемого менеджера пакетов, которые, при вызове, определяют используемый менеджер пакетов для текущего проекта, прозрачно устанавливают его при необходимости и, наконец, запускают его без необходимости явного взаимодействия пользователя.

Эта функция упрощает два основных рабочих процесса:

  • Она облегчает адаптацию новых участников, поскольку им больше не нужно следовать специфическим для системы процессам установки, чтобы иметь нужный менеджер пакетов.

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

Рабочие процессы

Включение функции

Из-за экспериментального статуса Corepack в настоящее время необходимо явно включить его, чтобы он имел какой-либо эффект. Для этого просто выполните corepack enable, что создаст символические ссылки в вашей среде рядом с бинарником node (и перезапишет существующие символические ссылки при необходимости).

После этого любой вызов поддерживаемых бинарных файлов будет работать без дополнительной настройки. В случае возникновения проблемы просто выполните corepack disable, чтобы удалить прокси из вашей системы (и рассмотрите возможность создания проблемы в репозитории Corepack, чтобы сообщить нам об этом).

Настройка пакета

Прокси Corepack найдут ближайший файл package.json в вашей текущей иерархии каталогов, чтобы извлечь свойство "packageManager".

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

Обновление глобальных версий

При запуске вне существующего проекта (например, при запуске yarn init), Corepack по умолчанию будет использовать предопределенные версии, примерно соответствующие последним стабильным выпускам каждого инструмента. Эти версии можно легко переопределить, выполнив команду corepack prepare вместе с версией менеджера пакетов, которую вы хотите установить:

corepack prepare yarn@x.y.z --activate

Рабочий процесс в автономном режиме

Во многих производственных средах нет доступа к сети. Поскольку Corepack обычно загружает версии менеджеров пакетов напрямую из их репозиториев, это может конфликтовать с такими средами. Чтобы этого избежать, выполните команду corepack prepare в то время, когда у вас есть доступ к сети (обычно в то же время, когда вы готовите свой образ развертывания). Это гарантирует, что необходимые менеджеры пакетов будут доступны даже без доступа к сети.

Команда prepare имеет различные флаги, для получения дополнительной информации обратитесь к подробной документации Corepack.

Поддерживаемые менеджеры пакетов

Через Corepack предоставляются следующие бинарные файлы:

Менеджер пакетов Имена бинарных файлов
Yarn yarn, yarnpkg
pnpm pnpm, pnpx

Часто задаваемые вопросы

Как Corepack в настоящее время взаимодействует с npm?

Хотя Corepack может легко поддерживать npm как любой другой менеджер пакетов, его обманки (shims) в настоящее время не включены по умолчанию. Это имеет несколько последствий:

  • Всегда возможно выполнить команду npm в проекте, настроенном для использования с другим менеджером пакетов, поскольку Corepack не может его перехватить.

  • Хотя npm является допустимым вариантом в свойстве "packageManager", отсутствие обманки (shim) приведет к использованию глобального npm.

Команда npm install -g yarn не работает

npm предотвращает случайное перезаписывание бинарных файлов Corepack при выполнении глобальной установки. Чтобы избежать этой проблемы, рассмотрите один из следующих вариантов:

  • Больше не выполняйте эту команду; Corepack предоставит бинарные файлы менеджера пакетов в любом случае и гарантирует, что запрошенные версии всегда будут доступны, поэтому явная установка менеджеров пакетов больше не требуется.

  • Добавьте --force в npm install; это сообщит npm, что можно перезаписывать бинарные файлы, но при этом вы удалите бинарные файлы Corepack (в случае возникновения такой ситуации выполните corepack enable снова, чтобы добавить их обратно).

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v16.x/docs/api/corepack.html

Spec-Zone.ru

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