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

pnpm 更新

別名:upupgrade

pnpm 更新會根據指定的範圍將套件更新為最新版本。

若未帶任何參數使用,則會更新所有相依性。

簡而言之

指令意義
pnpm up更新所有相依性,遵循在 package.json 中指定的範圍
pnpm up --latest將所有相依性更新至其最新版本
pnpm up foo@2foo 更新至 v2 的最新版本
pnpm up "@babel/*"更新 @babel 範圍下的所有相依性

使用模式選擇相依性

您可以使用模式來更新特定相依性。

更新所有 babel 套件

pnpm update "@babel/*"

更新所有相依性,但排除 webpack

pnpm update "\!webpack"

模式也可以組合,因此下一個指令將更新所有 babel 套件,但排除 core

pnpm update "@babel/*" "\!@babel/core"

選項

--recursive, -r

在具有 package.json 的所有子目錄中同時執行更新(排除 node_modules)。

使用範例

pnpm --recursive update
# updates all packages up to 100 subdirectories in depth
pnpm --recursive update --depth 100
# update typescript to the latest version in every package
pnpm --recursive update typescript@latest

--latest, -L

將相依性更新至其最新穩定版本,由其 latest 標籤決定(可能會將套件升級至主要版本),只要在 package.json 中指定的版本範圍低於 latest 標籤(即它不會降級預發行版本)。

--global, -g

更新全域套件。

--workspace

嘗試連結工作區中的所有套件。版本會更新以符合工作區內套件的版本。

如果更新特定套件,則如果工作區內找不到任何已更新的相依性,指令將會失敗。例如,如果 express 不是工作區套件,則以下指令將會失敗

pnpm up -r --workspace express

--prod, -P

僅更新 dependenciesoptionalDependencies 中的套件。

--dev, -D

僅更新 devDependencies 中的套件。

--no-optional

不更新 optionalDependencies 中的套件。

--interactive, -i

顯示過期的依賴項,並選擇要更新哪些依賴項。

--filter <package_selector>

閱讀更多有關篩選的資訊。