Как использовать Corepack

Источник: «How To Use Corepack»
Недавно я узнал о corepack, инструменте, работающем с Node.js и решающем множество проблем с менеджерами пакетов. С этого момента буду использовать его в своём процессе разработки.

Быстрый старт

Шаг 1. Глобальная установка

corepack поставляется в комплекте с Node.js, и так было с Node.js 14.19. Поэтому, если у вас есть Node.js, у вас есть и corepack.

Вы можете включить corepack на своей машине, выполнив следующую команду:

corepack enable && corepack enable npm

Это включает corepack глобально — не нужно включать его в каждом проекте.

Шаг 2. Настройка проекта

corepack проверяет, что в проекте используется корректный менеджер пакетов. Чтобы настроить менеджер пакетов для конкретного проекта, добавьте поле packageManager в файл package.json:

{
// npm
"packageManager": "npm@10.8.1",
// pnpm
"packageManager": "pnpm@9.1.4",
// yarn
"packageManager": "yarn@3.1.1"
}

Вы должны указать точную версию менеджера пакетов, которую хотите использовать, а не диапазон версий. Все перечисленные ниже варианты недопустимы:

{
// недопустимо: использует диапазон
"packageManager": "npm@^10.8.1",

// недопустимо: указано 'latest'
"packageManager": "pnpm@latest",

// недопустимо: необходимо указать точную версию
"packageManager": "yarn"
}

Шаг 3. Попробуйте

Теперь, если вы попытаетесь выполнить npm install в проекте, в котором packageManager установлен на pnpm, corepack выдаст ошибку:

Usage Error: This project is configured to use pnpm

$ npm ...

А если попытаетесь выполнить pnpm install, corepack автоматически загрузит и использует правильную версию pnpm:

Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-9.1.4.tgz.

Do you want to continue? [Y/n]

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

Зачем нужен corepack enable npm

corepack перехватывает вызовы pnpm и yarn, чтобы убедиться, что вы используете их корректно. Это настраивается с помощью команды corepack enable.

Если не запустить corepack enable npm, вы не получите такую же проверку при использовании npm. Поэтому необходимо запустить corepack enable npm, чтобы быть уверенным, что с npm будут обращаться так же, как с pnpm и yarn.

Дополнительные материалы

Предыдущая Статья

Использование CSS анимации, основанной на прокрутке, для индикации прогресса прокрутки на основе секций

Следующая Статья

Понимание SQL оператора ORDER BY