跳到主要内容
版本:10.x

pnpm update

别名:up, upgrade

pnpm update 会根据指定的版本范围更新包。

不带参数使用时,会更新所有依赖。

快速概览

命令含义
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
# 更新最多 100 层子目录中的所有包
pnpm --recursive update --depth 100
# 在每个包中将 typescript 更新到最新版本
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

显示过期的依赖并选择要更新的项。

--no-save

不更新 package.json 中的版本范围。

--filter <package_selector\

了解更多关于过滤的内容。