8.5. pnpm

В этой статье мы рассмотрим пакетный менеджер pnpm. Его сайт недоступен на территории России без VPN.

Установить и проверить этот пакетный менеджер можно двумя способами:

  1. С использованием команды iwr https://get.pnpm.io/install.ps1 -useb | iex (PowerShell).
  2. Установив глобально 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 # для обновления всех пакетов (также можно указать конкретное имя для обновления отдельной зависимости)