Встановлення
Попередні вимоги
Якщо ви не використовуєте окремий скрипт або @pnpm/exe
для встановлення pnpm, то у вашій системі має бути встановлений Node.js (принаймні v18.12).
Використання окремого скрипта
Ви можете встановити pnpm, навіть якщо у вас не встановлено Node.js, за допомогою наступних скриптів.
У Windows
Використовуючи PowerShell:
$env:PNPM_VERSION = "10.0.0"; Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression
В системах POSIX
curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=10.0.0 sh -
Якщо у вас не встановлено curl, ви можете скористатися wget:
wget -qO- https://get.pnpm.io/install.sh | env PNPM_VERSION=10.0.0 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
Починаючи з версії 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 знову, і він повинен запрацювати, як очікувалося.
Використання скороченого псевдоніма
Комусь може бути важко ввести pnpm
, тому ви можете використати коротший псевдонім, наприклад, pn
.
Додавання постійного псевдоніма у системах POSIX
Просто додайте наступний рядок до свого .bashrc
, .zshrc
або config.fish
:
alias pn=pnpm