跳至主要內容
版本:11 & 12

安裝

必要條件

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.

資訊

Looking for pnpm 12? It is currently a release candidate and installed differently from pnpm 11. See Installing the pnpm 12 RC.

使用指令稿來安裝

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

Windows

警告

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

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

使用 Powershell:

Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression

On Windows, Microsoft Defender can significantly 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 in pnpm 11

On pnpm 11, the standalone script does not run on Intel Macs (darwin-x64). Use Homebrew, or install pnpm 12, which ships an Intel build. See #11423 for context.

pnpm 12 ships an Intel macOS build again, so this limitation doesn't apply to it.

curl -fsSL https://get.pnpm.io/install.sh | sh -

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

wget -qO- https://get.pnpm.io/install.sh | sh -
Linux runtime requirements

The install script picks a glibc or musl build based on your system's libc, and a separate musl build is provided for Alpine and other musl-based distros. 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="$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 -

安裝特定版本

在執行安裝指令稿之前,您可以設定 shell 變數 PNPM_VERSION 以安裝指定版本的 pnpm:

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

使用其他套件管理程式

使用 npm 來安裝

npx get-pnpm

使用 Homebrew

如果您已安裝 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
提示

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

Installing the pnpm 12 RC

警告

pnpm 12 is a rewrite of pnpm in Rust and is currently a release candidate. Please report any issues you run into.

Apart from a short list of differences, pnpm 12 does not change the way you use pnpm 11, so the rest of this documentation applies to both versions — see What's different in pnpm 12. Only installation differs while v12 is a release candidate: it is published under the next-12 tag on npm and as a prerelease on GitHub, so Homebrew, winget, Scoop and Chocolatey don't offer it yet.

Using pnpm

If you already have pnpm v11.10.0 or newer, this is the easiest way to switch:

pnpm self-update next-12

pnpm links the native binary directly, so nothing else is needed. Note that inside a project that pins pnpm through the packageManager field, self-update only updates that pin instead of installing pnpm globally.

Using npm

If you don't have pnpm installed yet:

npx get-pnpm next-12

Node.js 22.13 or newer is needed to run that install script, but not to run pnpm afterwards — pnpm 12 is a native binary.

Using a standalone script

Set PNPM_VERSION to next-12, or to an exact version.

On POSIX systems:

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

On Windows, using PowerShell:

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

This installs pnpm without requiring Node.js, and unlike pnpm 11 it also works on Intel macOS.

相容性

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

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

pnpm 12 only needs Node.js when it is installed from npm; the version installed by the standalone script runs without 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 npm 來尋找 pnpm 存放的位置。 If you're on Windows, run where.exe pnpm.*. 您將取得 pnpm 命令的位置,例如:

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

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

更新 pnpm

如要更新 pnpm,請執行 self-update 命令:

pnpm self-update

解除安裝 pnpm

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