Встановлення
Попередні вимоги
Якщо ви не використовуєте окремий скрипт або @pnpm/exe для встановлення pnpm, то у вашій системі має бути встановлений Node.js (принаймні v18.12).
Використання окремого скрипта
Ви можете встановити pnpm, навіть якщо у вас не встановлено Node.js, за допомогою наступних скриптів.
У Windows
Використовуючи PowerShell:
Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression
В системах POSIX
curl -fsSL https://get.pnpm.io/install.sh | sh -
Якщо у вас не встановлено curl, ви можете скористатися wget:
wget -qO- https://get.pnpm.io/install.sh | sh -
Після цього ви можете скористатися командою pnpm env для встановлення Node.js.
У контейнері Docker
# bash
wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.bashrc" SHELL="$(which bash)" bash -
# sh
wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.shrc" SHELL="$(which sh)" sh -
# dash
wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.dashrc" SHELL="$(which dash)" dash -
Встановлення конкретної версії
Перед запуском скрипту встановлення ви можете додатково встановити змінну оточення PNPM_VERSION, щоб встановити певну версію pnpm:
curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=<version> sh -
Використовуючи Corepack
Due to an issue with outdated signatures in Corepack, Corepack should be updated to its latest version first:
npm install --global corepack@latest
Починаючи з версії 16.13, Node.js постачає Corepack для керування менеджерами пакунків. Це експериментальна функція, тому вам потрібно ввімкнути її, виконавши:
Якщо ви встановили Node.js з pnpm env Corepack не буде встановлено у вашій системі, вам потрібно буде встановити його окремо. Див. #4029.
corepack enable pnpm
Це автоматично встановить pnpm у вашій системі.
Ви можете закріпити версію pnpm, яка використовується у вашому проєкті, за допомогою наступної команди:
corepack use pnpm@latest-10
Це додасть поле "packageManager" у ваш локальний package.json, яке вкаже Corepack завжди використовувати певну версію в цьому проєкті. Це може бути корисно, якщо вам потрібна відтворюваність, оскільки всі розробники, які використовують Corepack, використовуватимуть ту саму версію, що й ви. Коли буде випущена нова версія pnpm, ви можете повторно запустити наведену вище команду.
Використання інших менеджерів пакунків
Використовуючи npm
Ми надаємо два пакунки pnpm CLI, pnpm та @pnpm/exe.
- pnpm— це звичайна версія pnpm, для роботи якої потрібен Node.js.
- @pnpm/exeупаковано разом з Node.js у виконуваний файл, тому його можна використовувати в системі без встановленого Node.js.
npm install -g pnpm@latest-10
або
npm install -g @pnpm/exe@latest-10
Використовуючи Homebrew
Якщо у вас встановлено менеджер пакунків, ви можете встановити pnpm за допомогою наступної команди:
brew install pnpm
Використовуючи winget
Якщо у вас встановлено winget, ви можете встановити pnpm за допомогою наступної команди:
winget install -e --id pnpm.pnpm
Використовуючи Scoop
Якщо у вас встановлено Scoop, ви можете встановити pnpm за допомогою наступної команди:
scoop install nodejs-lts pnpm
Використовуючи Choco
Якщо у вас встановлено Chocolatey, ви можете встановити pnpm за допомогою наступної команди:
choco install pnpm
Використовуючи Volta
Якщо у вас встановлено Volta, ви можете встановити pnpm за допомогою наступної команди:
volta install pnpm
Хочете використовувати pnpm на серверах CI? Див.: Безперервна інтеграція.
Сумісність
Ось список останніх версій pnpm з відповідними версіями Node.js, які вони підтримують.
| Node.js | pnpm 8 | pnpm 9 | pnpm 10 | 
|---|---|---|---|
| Node.js 14 | ❌ | ❌ | ❌ | 
| Node.js 16 | ✔️ | ❌ | ❌ | 
| Node.js 18 | ✔️ | ✔️ | ✔️ | 
| Node.js 20 | ✔️ | ✔️ | ✔️ | 
| Node.js 22 | ✔️ | ✔️ | ✔️ | 
Усунення несправностей
Якщо pnpm не працює і ви не можете виправити це перевстановленням, можливо, вам доведеться видалити його вручну з PATH.
Припустимо, у Вас виникає подібна проблема під час запуску pnpm install:
C:\src>pnpm install
internal/modules/cjs/loader.js:883
  throw err;
  ^
Error: Cannot find module 'C:\Users\Bence\AppData\Roaming\npm\pnpm-global\4\node_modules\pnpm\bin\pnpm.js'
←[90m    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)←[39m
←[90m    at Function.Module._load (internal/modules/cjs/loader.js:725:27)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)←[39m
←[90m    at internal/main/run_main_module.js:17:47←[39m {
  code: ←[32m'MODULE_NOT_FOUND'←[39m,
  requireStack: []
}
Спочатку спробуйте знайти розташування pnpm, виконавши: which pnpm. Якщо ви використовуєте Windows, запустіть where.exe pnpm.*.
Ви отримаєте розташування команди pnpm, наприклад:
$ which pnpm
/c/Program Files/nodejs/pnpm
Тепер, коли ви знаєте, де знаходиться pnpm CLI, відкрийте цю теку і видаліть усі файли, повʼязані з pnpm (pnpm.cmd, pnpx.cmd, pnpm і т.д.).
Після видалення, встановіть pnpm знову, і він повинен запрацювати, як очікувалося.