설치하기
필수 구성 요소#
만약 pnpm 설치에 독립 실행형 스크립트나 @pnpm/exe를 사용하지 않는 경우, 시스템에 Node.js(최소 v18.12)가 설치되어 있어야 합니다.
스크립트로 설치하기#
Node.js가 설치되어 있지 않더라도 다음 명령어를 통해 pnpm을 설치할 수 있습니다.
윈도우#
경고
이 방식으로 pnpm 설치 시 가끔 Windows Defender에서 실행 파일을 차단할 수 있습니다.
이 문제로 인해 현재 Windows에서는 npm 또는 Corepack을 사용하여 pnpm을 설치하는 것을 권장합니다.
Powershell:
$env:PNPM_VERSION = "10.33.4"; 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#
curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=10.33.4 sh -
curl이 설치되어 있지 않은 경우에는 wget을 사용할 수 있습니다.
wget -qO- https://get.pnpm.io/install.sh | env PNPM_VERSION=10.33.4 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 사용하기#
Corepack의 오래된 서명 문제로 인해, 먼저 Corepack을 최신 버전으로 업데이트해야 합니다:
npm install --global corepack@latest
Node.js는 v16.13부터 패키지 관리자를 관리하기 위한 Corepack을 함께 제공합니다. 이것은 실험적인 기능이므로 아래 명령어를 실행하여 활성화해야 합니다.
정보
pnpm env로 Node.js를 설치한 경우 시스템에 Corepack이 설치되지 않으므로 별도로 설치해야 합니다. #4029를 참조하세요.
corepack enable pnpm
명령어를 실행하면 시스템에 pnpm이 자동으로 설치됩니다.
다음 명령어를 사용하여 프로젝트에서 사용하는 pnpm 버전을 고정할 수 있습니다:
corepack use pnpm@latest-10
이렇게 하면 로컬 package.json에 "packageManager" 필드가 추가되며, 이 필드는 Corepack이 해당 프로젝트에서 항상 특정 버전을 사용하도록 지시합니다. Corepack을 사용하는 모든 개발자가 동일한 버전을 사용하게 되므로, 재현성이 필요한 경우에 유용합니다. Pnpm의 새 버전이 출시되면 위 명령을 다시 실행할 수 있습니다.
기타 패키지 관리자 사용하기#
npm 사용하기#
두 가지 pnpm CLI 패키지 pnpm과 @pnpm/exe를 제공합니다.
pnpm은 일반 버전의 pnpm으로, 실행하려면 Node.js가 필요합니다.@pnpm/exe는 Node.js와 함께 실행 파일로 패키징되어 있으므로, Node.js가 설치되지 않은 시스템에서도 사용할 수 있습니다.
npx pnpm@latest-10 dlx @pnpm/exe@latest-10 setup
또는
npm install -g pnpm@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 서버에서 사용하고 싶다면? 참조: Continuous Integration.
호환성#
Node.js 버전에 호환되는 pnpm 버전 목록입니다.
| Node.js | pnpm 8 | pnpm 9 | pnpm 10 |
|---|---|---|---|
| Node.js 14 | ❌ | ❌ | ❌ |
| Node.js 16 | ✔️ | ❌ | ❌ |
| Node.js 18 | ✔️ | ✔️ | ✔️ |
| Node.js 20 | ✔️ | ✔️ | ✔️ |
| Node.js 22 | ✔️ | ✔️ | ✔️ |
| Node.js 24 | ✔️ | ✔️ | ✔️ |
문제 해결 안내#
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은 입력하기 번거로울 수 있으니 pn과 같은 더 짧은 별칭을 사용할 수도 있습니다.
POSIX 시스템에서 단축어 설정하기#
.bashrc, .zshrc 혹은 config.fish에 다음과 같은 설정을 추가합니다:
alias pn=pnpm
Powershell (Windows)에서 단축어 설정하기#
관리자 권한으로 실행한 Powershell 창에서 다음을 실행합니다:
notepad $profile.AllUsersAllHosts
열린 profile.ps1 파일에 다음을 입력하세요:
set-alias -name pn -value pnpm
파일을 저장하고 창을 닫습니다. 별칭을 적용하려면 열려 있는 Powershell 창을 닫아야 할 수 있습니다.
pnpm 업데이트하기#
pnpm을 업데이트하려면, self-update 명령을 실행하세요:
pnpm self-update
pnpm 삭제#
시스템과 디스크에 기록된 모든 파일에서 pnpm CLI를 제거해야 하는 경우 Uninstalling pnpm을 참조하세요.