这些文本深入解释了 pnpm 作为一个包管理器,并强调了其 速度和磁盘空间效率 优于 npm 和 yarn 的原因,主要在于其独特的依赖项管理方式。这包括 利用全局存储和符号链接 来避免重复存储依赖项文件,同时兼容 Node.js 的模块解析机制。此外,讨论还涵盖了 pnpm 处理对等依赖项 的复杂性以及如何通过 overrides字段 解决升级传递依赖项(特别是出于安全原因)的挑战。文本通过代码示例和图示展示了 pnpm 如何构建其 node_modules结构,以及这种结构如何影响模块的可访问性,从而 减少“幽灵依赖” 的问题。