pnpm workspace包管理
🔍 查看包的可用版本列表
你可以用 pnpm view 命令查询一个包在 registry(npm 注册表)上的所有可用版本。
- 查看所有可用版本:
bashpnpm view <package-name> versions例如,要查看 react 的所有版本,可以运行:
pnpm view react versions- 查看最新版本:
pnpm view <package-name> version这条命令会直接返回该包的最新版本号
- 查看
dist-tags(如latest、beta等标签对应的版本):
pnpm view <package-name> dist-tags这能帮助你了解除了最新稳定版之外,是否还有预发布版本。
⚙️ 绕过版本范围限制,更新到最新版
pnpm update(别名 pnpm up)命令默认会在 package.json 指定的版本范围内进行更新。要忽略这些范围(如 ^、~),直接更新到最新版本,需要加上 --latest(或 -L)参数。
- 在工作区根目录,更新所有包的依赖到最新版本:
如果你在 pnpm-workspace.yaml 所在的根目录,并且希望一次性更新所有子包的依赖,需要使用 --recursive(或 -r)参数:
pnpm update --latest --recursive或者使用简写:
pnpm up -L -r请注意:这个操作会忽略所有 package.json 中的版本范围限制,可能导致跨大版本升级,请务必谨慎操作,并充分测试。
- 更新工作区中特定包的依赖:
可以结合 --filter 参数来指定要更新的包:
pnpm --filter <package-name> update --latest例如:
pnpm --filter @my-app/core update --latest- 交互式更新:
如果你不想一刀切地更新所有包,可以使用
--interactive(或-i)参数。这会列出所有过时的依赖,让你逐一选择要更新的版本:
pnpm update --latest --interactive这是一个更安全的替代方案。
💡 补充:检查工作区中所有过时的包
在决定更新之前,可以使用 pnpm outdated 命令检查工作区中所有子包的过时依赖:
pnpm outdated --recursive或者使用简写:
pnpm outdated -r这个命令会列出所有有更新版本的包,方便你评估更新的范围和影响。