8.5. pnpm
В этой статье мы рассмотрим пакетный менеджер pnpm. Его сайт недоступен на территории России без VPN.
Установить и проверить этот пакетный менеджер можно двумя способами:
- С использованием команды
iwr https://get.pnpm.io/install.ps1 -useb | iex(PowerShell). - Установив глобально
npm i -g pnpm. Этот способ работает не у всех пользователей Windows.
Прежде чем посмотреть отличия пакетных менеджеров, давайте вспомним, что такое npm.
npm — это пакетный менеджер, который является стандартом для JavaScript-разработки. Он использует локальное хранилище. В результате пакеты устанавливаются медленно, а размеры хранилища возрастают.
npm раз за разом, из проекта в проект скачивает зависимости и хранит их отдельно. То есть другой проект с такими же зависимостями не будет знать о дубликатах в соседней директории.
pnpm — это альтернатива npm (никак не замена). Он использует глобальное хранилище для каждого проекта с использованием локальных ссылок. Это приводит к быстрой
установке пакетов и меньшему размеру хранилища. То есть, если мы имеем два разных проекта с одними и теми же зависимостями, pnpm не будет скачивать их заново.
Он создаст ссылки на уже скачанные пакеты, которые хранятся в специальной директории — .pnpm-store (это название по умолчанию).
Вот пути к этой директории в зависимости от используемой ОС.
| OS | Путь |
|---|---|
| Windows | ~/AppData/Local/pnpm/store |
| macOS | ~/Library/pnpm/store |
| Linux | ~/.local/share/pnpm/store |
В pnpm используются команды:
pnpm add <имя пакета для установки>
pnpm add <имя пакета для установки> -D # для установки пакета в devDependencies
pnpm remove <имя пакета для установки> # для удаления пакета
pnpm update # для обновления всех пакетов (также можно указать конкретное имя для обновления отдельной зависимости)