설치하기
필수 구성 요소#
독립 실행형 스크립트나 @pnpm/exe로 pnpm을 설치하지 않는다면, 시스템에 Node.js(최소 v22)가 설치되어 있어야 합니다.
정보
pnpm 12를 찾고 계신가요? 현재 릴리스 후보이며, pnpm 11과는 설치 방법이 다릅니다. 다음을 참고하세요. pnpm 12 RC 설치
스크립트로 설치하기#
Node.js가 설치되어 있지 않더라도 다음 명령어를 통해 pnpm을 설치할 수 있습니다.
윈도우#
경고
이 방식으로 pnpm 설치 시 가끔 Windows Defender에서 실행 파일을 차단할 수 있습니다.
이 문제 때문에 지금은 Windows에서 npm으로 pnpm을 설치하는 것을 권장합니다.
Powershell:
Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression
Windows에서는 Microsoft Defender 때문에 패키지 설치가 크게 느려질 수 있습니다. PowerShell을 관리자 권한으로 실행한 뒤 다음 명령어를 실행하여 pnpm을 Microsoft Defender의 제외 폴더 목록에 추가할 수 있습니다:
Add-MpPreference -ExclusionPath $(pnpm store path)
POSIX systems#
pnpm 11에서는 Intel macOS를 지원하지 않습니다
pnpm 11의 독립 실행 스크립트는 Intel Mac(darwin-x64)에서 실행되지 않습니다. Homebrew를 사용하거나, Intel용 빌드가 포함된 pnpm 12를 설치하세요. 배경은 #11423을 참고하세요.
pnpm 12에는 Intel macOS용 빌드가 다시 포함되므로 이 제한은 적용되지 않습니다.
curl -fsSL https://get.pnpm.io/install.sh | sh -
curl이 설치되어 있지 않은 경우에는 wget을 사용할 수 있습니다.
wget -qO- https://get.pnpm.io/install.sh | sh -
Linux 런타임 요구 사항
설치 스크립트는 시스템의 libc에 따라 glibc 빌드 또는 musl 빌드를 선택하며, Alpine을 비롯한 musl 기반 배포판을 위해 별도의 musl 빌드를 제공합니다. glibc 빌드에는 glibc 2.27 이상과 libatomic.so.1이 필요합니다. 둘 다 대부분의 일반 배포판에는 있지만, 최소 구성 컨테이너 이미지에는 없을 수 있습니다. error while loading shared libraries: libatomic.so.1이 보이면 배포판의 패키지 매니저로 설치하세요.
- Debian/Ubuntu:
apt-get install -y libatomic1 - Fedora/RHEL:
dnf install -y libatomic
팁
그런 다음 pnpm runtime 명령으로 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라는 env 변수를 설정하여 특정 버전의 pnpm을 설치할 수 있습니다.
curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=<version> sh -
기타 패키지 관리자 사용하기#
npm 사용하기#
npx get-pnpm
Homebrew 사용하기#
패키지 매니저가 이미 설치되어 있다면 다음 명령으로 pnpm을 설치할 수 있습니다.
brew install pnpm
winget 사용하기#
Winget이 설치되어 있으면 아래 명령어를 사용하여 pnpm을 설치할 수 있습니다.
winget install -e --id pnpm.pnpm
Scoop 사용하기#
Scoop이 설치되어 있으면 아래 명령어를 사용하여 pnpm을 설치할 수 있습니다.
scoop install nodejs-lts pnpm
Choco 사용하기#
Choco가 설치되어 있으면 아래 명령어를 사용하여 pnpm을 설치할 수 있습니다
choco install pnpm
팁
pnpm을 CI 서버에서 사용하고 싶나요? 참고: 지속적 통합.
pnpm 12 RC 설치하기#
경고
pnpm 12는 pnpm을 Rust로 다시 작성한 버전이며, 현재 릴리스 후보입니다. 문제가 발생하면 이슈를 보고해 주세요.
몇 가지 차이를 빼면 pnpm 12는 pnpm 11을 사용하는 방식을 바꾸지 않습니다. 따라서 이 문서의 나머지는 두 버전 모두에 적용됩니다. pnpm 12에서 달라진 점을 참고하세요. v12가 릴리스 후보인 동안에는 설치 방법만 다릅니다. npm에는 next-12 태그로, GitHub에는 프리릴리스로 게시되므로 Homebrew, winget, Scoop, Chocolatey에서는 아직 제공하지 않습니다.
pnpm으로 설치하기#
이미 pnpm v11.10.0 이상을 쓰고 있다면 이 방법으로 전환하는 것이 가장 쉽습니다.
pnpm self-update next-12
pnpm이 네이티브 바이너리를 직접 링크하므로 그 밖에 필요한 작업은 없습니다. packageManager 필드로 pnpm을 고정한 프로젝트 안에서는 self-update가 pnpm을 전역 설치하지 않고 그 고정값만 업데이트합니다.
npm 사용하기#
아직 pnpm이 설치되어 있지 않다면 다음과 같이 합니다.
npx get-pnpm next-12
이 설치 스크립트를 실행하려면 Node.js 22.13 이상이 필요하지만, 설치 후 pnpm을 실행할 때는 필요하지 않습니다. pnpm 12는 네이티브 바이너리입니다.
스크립트로 설치하기#
PNPM_VERSION을 next-12 또는 정확한 버전으로 설정하세요.
POSIX 시스템에서:
curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=next-12 sh -
Windows에서는 PowerShell을 사용합니다.
$env:PNPM_VERSION="next-12"; Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression
이렇게 하면 Node.js 없이 pnpm이 설치되며, pnpm 11과 달리 Intel macOS에서도 동작합니다.
호환성#
Node.js 버전에 호환되는 pnpm 버전 목록입니다.
| Node.js | pnpm 8 | pnpm 9 | pnpm 10 | pnpm 11 | pnpm 12 |
|---|---|---|---|---|---|
| Node.js 14 | ❌ | ❌ | ❌ | ❌ | ❌ |
| Node.js 16 | ✔️ | ❌ | ❌ | ❌ | ❌ |
| Node.js 18 | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
| Node.js 20 | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
| Node.js 22 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Node.js 24 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Node.js 26 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
pnpm 12는 npm으로 설치할 때만 Node.js가 필요합니다. 독립 실행 스크립트로 설치한 버전은 Node.js 없이 실행됩니다.
문제 해결 안내#
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: []
}
먼저, which pnpm을 실행해서 pnpm의 위치를 찾으세요. Windows라면 where.exe pnpm.*를 실행하세요. 그럼 pnpm이 어디에 있는지 찾을 수 있을 겁니다. 예:
$ which pnpm
/c/Program Files/nodejs/pnpm
이제 pnpm CLI가 어딨는지 알았으니, 해당 폴더를 열고 pnpm과 관련된 모든 파일을 지우세요 (pnpm.cmd, pnpx.cmd, pnpm, 등등). 완료된 후, pnpm을 다시 설치하면 제대로 작동할 것입니다.
pnpm 업데이트하기#
pnpm을 업데이트하려면 self-update 명령을 실행하세요.
pnpm self-update
pnpm 삭제#
시스템과 디스크에 기록된 모든 파일에서 pnpm CLI를 제거해야 하는 경우 pnpm 제거을 참조하세요.