pnpm update
别名:up
, upgrade
pnpm update
会根据指定的版本范围更新包。
不带参数使用时,会更新所有依赖。
快速概览
命令 | 含义 |
---|---|
pnpm up | 按照 package.json 中指定的范围更新所有依赖 |
pnpm up --latest | 更新所有依赖到其最新版本 |
pnpm up foo@2 | 将 foo 更新到 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
仅更新 dependencies
和 optionalDependencies
中的包。
--dev, -D
仅更新 devDependencies
中的包。
--no-optional
不更新 optionalDependencies
中的包。
--interactive, -i
显示过期的依赖并选择要更新的项。
--no-save
不更新 package.json
中的版本范围。