安裝
必要條件
如果您不想利用指令稿或 @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 -
Alpine Linux
# 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 -
接下來您可以使用 pnpm env 命令來安裝 Node.js了。
使用 Corepack 來安裝
自 16.13 版起,Node.js 推出了 Corepack——管理套件管理器的工具。 因為這是試驗性功能,需執行此命令以啟用 Corepack:
如果您是以 pnpm env
安裝 Node.js,則不會順帶安裝 Corepack。如須使用 Corepack,則需另外安裝。 詳情請參閱 #4029。
corepack enable
若您先前使用 Homebrew 安裝 Node.js,則需另外安裝 corepack:
brew install corepack
它會在您的電腦上自動安裝 pnpm, 只是可能不是最新版。 如要升級,請檢查 最新的 pnpm 版本 後並執行:
corepack prepare pnpm@<version> --activate
使用 Node.js v16.17 或是更新的版本時,您只需指定版本標籤即可安裝 latest
版。
corepack prepare pnpm@latest --activate
使用 npm 來安裝
我們提供了兩個 pnpm CLI 包裝, pnpm
和 @pnpm/exe
。
npm install -g pnpm
或
npm install -g @pnpm/exe
使用 Homebrew 來安裝
如果您已安裝 Homebrew 套件管理器,可以使用此命令來安裝 pnpm
brew install pnpm
使用 winget 來安裝
如果您已安裝 winget,可以使用此命令來安裝 pnpm
winget install pnpm
使用 Scoop 來安裝
如果您已安裝 Scoop,可以使用此命令來安裝 pnpm
scoop install nodejs-lts pnpm
使用 Choco 來安裝
如果您已安裝 Choco,可以使用此命令來安裝 pnpm
choco install pnpm
使用 Volta 來安裝
如果您已安裝 Volta,可以使用此命令來安裝 pnpm
volta install pnpm
您想在 CI 伺服器上使用 pnpm 嗎? 請參閱 持續整合 (CI)
相容性
此表列出過去的 pnpm 與對應 Node.js 版本的相容性:
Node.js | pnpm 5 | pnpm 6 | pnpm 7 | pnpm 8 |
---|---|---|---|---|
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 npm
來尋找 pnpm 存放的位置。 如果使用 Windows,請在 Git Bash 中執行前述命令。 您會得到 pnpm 命令的位置,例如:
$ which pnpm
/c/Program Files/nodejs/pnpm
現在已經知道 pnpm CLI 存放的位置,請打開該資料夾並移除所有與 pnpm 有關的檔案(如 pnpm.cmd
、pnpx.cmd
、pnpm
等等)。 完成後再重新安裝 pnpm,應該就恢復正常了。
使用較短的別名
輸入 pnpm
太麻煩嗎?您可以改用 pn
作為別名。
在 POSIX 系統中加入永久別名
將這行加入 shell 的設定檔 .bashrc
、.zshrc
或 config.fish
就完成了:
alias pn=pnpm
在 Powershell 中加入永久別名 (Windows):
以系統管理員權限開啟 Powershell 視窗並執行此命令:
notepad $profile.AllUsersAllHosts
接著會打開 profile.ps1
檔案,在裡頭加上:
set-alias -name pn -value pnpm