安裝

必要條件#

If you don't use the standalone script or @pnpm/exe to install pnpm, then you need to have Node.js (at least v22) to be installed on your system.

使用指令稿來安裝#

即使沒有安裝 Node.js,您還是可以透過下面提供的指令稿來安裝 pnpm。

Windows#

警告

當您使用此方式安裝 pnpm 時,有時 Windows Defender 可能會封鎖我們的可執行檔。

Due to this issue, we currently recommend installing pnpm using npm on Windows.

使用 Powershell:

$env:PNPM_VERSION="latest-11"; Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression

On Windows, Microsoft Defender can slow down installation of packages. You can add pnpm to Microsoft Defender's list of excluded folders in a PowerShell window with administrator rights by executing:

Add-MpPreference -ExclusionPath $(pnpm store path)

POSIX 系統#

Not supported on Intel macOS and arm64 musl Linux

The standalone script and @pnpm/exe do not run on Intel Macs (darwin-x64) or on arm64 musl Linux, such as Alpine on ARM. Install the pnpm package, which runs on your system Node.js, with npm install -g pnpm@latest-11 instead. On arm64 musl Linux you can also use pnpm 12, which has a native binary for it. See #11423 and #10443 for context.

curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=latest-11 sh -

如果沒有安裝 curl,您也可以改用 wget:

wget -qO- https://get.pnpm.io/install.sh | env PNPM_VERSION=latest-11 sh -

Linux runtime requirements

The install script picks a glibc or musl build based on your system's libc. A separate musl build is provided for Alpine and other musl-based distros on x64. The glibc build requires glibc 2.27 or newer plus libatomic.so.1. Both are present on most full distros but may be missing from minimal container images. If you see error while loading shared libraries: libatomic.so.1, install it with your distro's package manager:

  • Debian/Ubuntu: apt-get install -y libatomic1
  • Fedora/RHEL: dnf install -y libatomic

提示

You may use the pnpm runtime command then to install Node.js.

在 Docker 容器中#

# bash
wget -qO- https://get.pnpm.io/install.sh | env PNPM_VERSION=latest-11 ENV="$HOME/.bashrc" SHELL="$(which bash)" bash -
# sh
wget -qO- https://get.pnpm.io/install.sh | env PNPM_VERSION=latest-11 ENV="$HOME/.shrc" SHELL="$(which sh)" sh -
# dash
wget -qO- https://get.pnpm.io/install.sh | env PNPM_VERSION=latest-11 ENV="$HOME/.dashrc" SHELL="$(which dash)" dash -

安裝特定版本#

Before running the install script, you may optionally set an env variable PNPM_VERSION to install a specific version of pnpm:

curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=<version> sh -

使用 npm 來安裝#

npx get-pnpm latest-11

提示

您想在 CI 伺服器上使用 pnpm 嗎?請參閱持續整合 (Continuous Integration)。

相容性#

此表列出過去的 pnpm 與對應 Node.js 版本的相容性:

Node.js pnpm 8 pnpm 9 pnpm 10 pnpm 11
Node.js 14 ❌ ❌ ❌ ❌
Node.js 16 ✔️ ❌ ❌ ❌
Node.js 18 ✔️ ✔️ ✔️ ❌
Node.js 20 ✔️ ✔️ ✔️ ❌
Node.js 22 ✔️ ✔️ ✔️ ✔️
Node.js 24 ✔️ ✔️ ✔️ ✔️
Node.js 26 ✔️ ✔️ ✔️ ✔️

疑難排解#

如果 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 npm 來尋找 pnpm 存放的位置。 If you're on Windows, run where.exe pnpm.*. 您將取得 pnpm 命令的位置,例如:

$ which pnpm
/c/Program Files/nodejs/pnpm

現在已經知道 pnpm CLI 存放的位置,請打開該資料夾並移除所有與 pnpm 有關的檔案(如 pnpm.cmd、pnpx.cmd、pnpm 等等)。完成後再重新安裝 pnpm,應該就恢復正常了。

更新 pnpm#

To update to the newest pnpm 11, run the self-update command with the major:

pnpm self-update 11

A bare pnpm self-update follows npm's latest tag, which now points at pnpm 12. See Installing pnpm v12 if that is what you want.

解除安裝 pnpm#

如果需要從系統中移除 pnpm 及其寫入磁碟的所有檔案,請參閱 [解除安裝 pnpm]。