Skip to main content
版本:7.x

安裝

使用獨立指令碼安裝

在 POSIX 系統上,即使您沒有預先安裝 Node.js,仍可以透過下方命令安裝 pnpm:

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

如果您的系統中沒有安裝 curl,您也可以使用 wget:

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

在 Windows 系統上安裝 (使用PowerShell):

iwr https://get.pnpm.io/install.ps1 -useb | iex

接下來您可以使用 pnpm env 命令來安裝 Node.js了。

使用 Corepack 安裝

從 v16.13 開始,Node.js 提供了 Corepack 套件管理程式。 這是一個實驗性功能,所以您需要先輸入以下命令來啟用:

corepack enable

這樣 pnpm 會自動在您系統上安裝。 然而,它可能不是最新發行版的 pnpm。 若要升級,請檢查最新的 pnpm 版本,然後執行:

corepack prepare pnpm@<version> --activate

使用 npm 安裝

npm install -g pnpm

使用 Homebrew 安裝

如果您有安裝 Homebrew 套件管理器,您可以透過以下命令安裝 pnpm:

brew install pnpm

使用 Scoop 安裝

如果您有安裝過 Scoop,您可以透過以下命令安裝 pnpm

scoop install nodejs-lts pnpm
tip

請問您想要在 CI 伺服器上使用 pnpm 嗎? 請參考:持續整合 (CI)

相容性

以下是過去 pnpm 版本與 Node.js 各個版本的相容性表格:

Node.jspnpm 4pnpm 5pnpm 6pnpm 7
Node.js 10✔️✔️
Node.js 12✔️✔️✔️
Node.js 14✔️✔️✔️✔️
Node.js 16?️?️✔️✔️
Node.js 18?️?️✔️✔️

疑難排解

如果 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 的位置。 如果您使用的是 Windows,在 Git Bash 中執行前述命令, 會得到 pnpm 命令的位置,例如:

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

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

Using a shorter alias

pnpm might be hard to type, so you may use a shorter alias like pn instead. Just put the following line to your .bashrc, .zshrc, or config.fish:

alias pn=pnpm

Uninstalling pnpm

如果您需要從系統及其寫入磁碟中的任何檔案中移除 pnpm CLI,請參閱〈解除安裝 pnpm〉。