pnpm monorepo 联调:告别 --global 参数

date
Oct 19, 2025
slug
pnpm-monorepo-debug-2
status
Published
tags
Technology
summary
pnpm 10.x 版本对 link 命令进行了重要简化:取消了 --global 参数,现在直接使用 pnpm link 即可完成全局链接。
type
Post

前言

在之前的文章《pnpm monorepo 联调方案》中,我详细介绍了如何使用 pnpm linkpnpm link --global 来解决 monorepo 环境下的调试难题。
时间过去了一段时间,pnpm 也在不断演进。最近在使用过程中,我发现了一个有趣的变化:执行 pnpm link 时不再需要添加 --global 参数,同时 pnpm 会自动创建 pnpm-workspace.yaml 文件。这引起了我的好奇心,决定深入研究一下 pnpm 10.x 版本中 link 功能的最新变化。

pnpm 10.x 中关于 link 的变更

最大的变化就是 去除了 --global 参数
之前我们这样操作:
现在直接:
看起来是小改动,但其实是把之前的 pnpm link --global 的行为直接变成了 pnpm link 的默认行为。
从官方文档也能看出来,现在的 pnpm link 描述和之前 9.x 版本的 pnpm link --global 完全一样。
notion image
notion image
 
取消链接还是用 pnpm unlink

实际使用体验

在库中执行 link

现在在基础库中执行 pnpm link,会直接链接到全局:

在项目中链接库

在项目中链接也更直接了:

自动生成的 workspace 配置

这是个新发现,链接完成后,pnpm 会自动在项目根目录生成 pnpm-workspace.yaml
这样就能清楚地看到当前项目链接了哪些包,比之前透明多了。

多库联调的改进

之前需要给每个库都加 --global,现在直接:
对于 workspace:* 这种依赖,pnpm 还是会自动处理,和之前一样智能。

前后对比

pnpm 9.x
pnpm 10.x
全局链接
pnpm link --global
pnpm link
项目链接
pnpm link --global <pkg>
pnpm link <pkg>
workspace 配置
手动管理
自动生成
操作复杂度
需要记住加 --global
更简单直接

总结

pnpm 10.x 的这个改动虽然看起来不大,但确实让联调操作更简单了。不用再记那个 --global 参数,直接 pnpm link 就完事。
加上自动生成的 workspace 配置文件,整个链接状态也更透明了。如果你还在用旧版本,建议升级试试,体验确实有提升。

参考资料

  1. pnpm link | pnpm 官方文档
  1. "pnpm link --global" in v10 behaves differently from v9, breaking global linking.
 

© JinSo 2021 - 2026