跳至主要內容
版本:9.x

安裝

先決條件

如果您未透過獨立腳本或 @pnpm/exe 安裝 pnpm,則系統中必須安裝 Node.js(至少 v16.14)。

使用獨立腳本

即使您未安裝 Node.js,也可以使用下列腳本安裝 pnpm。

在 Windows 上

使用 PowerShell

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

在 POSIX 系統上

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

如果您沒有安裝 curl,您會想要使用 wget

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

您可以使用 pnpm env 指令,然後安裝 Node.js。

使用 Corepack

自 v16.13 起,Node.js 開始提供 Corepack 來管理套件管理員。這是一個實驗性功能,因此您需要透過執行以下指令來啟用它

資訊

如果您已使用 pnpm env 安裝 Node.js,則您的系統上不會安裝 Corepack,您需要另外安裝它。請參閱 #4029

corepack enable pnpm

如果您使用 Homebrew 安裝 Node.js,則需要另外安裝 corepack

brew install corepack

這會自動在您的系統上安裝 pnpm。

您可以使用以下指令,將 pnpm 的版本固定在您的專案上

corepack use pnpm@latest

這會在您本地的 package.json 中新增一個 "packageManager" 欄位,它會指示 Corepack 永遠在該專案上使用特定版本。如果您想要可重製性,這會很有用,因為所有使用 Corepack 的開發人員都會使用與您相同的版本。當 pnpm 的新版本發布時,您可以重新執行上述指令。

使用 npm

我們提供兩個 pnpm CLI 套件,pnpm@pnpm/exe

  • pnpm 是 pnpm 的一般版本,需要 Node.js 才能執行。
  • @pnpm/exe 與 Node.js 封裝成可執行檔,因此可以在未安裝 Node.js 的系統上使用。
npm install -g pnpm

npm install -g @pnpm/exe
提示

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

相容性

以下是過去 pnpm 版本與對應 Node.js 版本支援的清單。

Node.jspnpm 7pnpm 8pnpm 9
Node.js 12
Node.js 14✔️
Node.js 16✔️✔️
Node.js 18✔️✔️✔️
Node.js 20✔️✔️✔️

疑難排解

如果 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,請在 Git Bash 中執行此指令。您將會取得 pnpm 指令的位置,例如

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

現在您已知道 pnpm CLI 的位置,請開啟該目錄並移除任何與 pnpm 相關的檔案(pnpm.cmdpnpx.cmdpnpm 等)。完成後,再次安裝 pnpm,它應該可以正常運作。

使用較短的別名

pnpm 可能很難輸入,因此您可以使用較短的別名,例如 pn

在 POSIX 系統上新增永久別名

只要將以下程式碼新增至您的 .bashrc.zshrcconfig.fish 即可

alias pn=pnpm

在 Powershell 中新增永久別名(Windows):

在具有管理員權限的 Powershell 視窗中執行

notepad $profile.AllUsersAllHosts

在開啟的 profile.ps1 檔案中,輸入

set-alias -name pn -value pnpm

儲存檔案並關閉視窗。你可能需要關閉任何開啟的 Powershell 視窗,才能讓別名生效。

解除安裝 pnpm

如果你需要從系統中移除 pnpm CLI 和它寫入磁碟的任何檔案,請參閱 解除安裝 pnpm