pnpm 10.12 (v10.12.1) 添加了一个实验性的全局虚拟存储,用于近乎即时的本地安装

pnpmJavaScript单体仓库DevOps

关键更新

pnpm v10.12 (v10.12.1) 发布了一个实验性的“全局虚拟存储”模式,该模式将依赖集按其完整依赖图进行哈希存储在中央存储中,并使项目的 node_modules 仅包含指向该共享存储的符号链接。这使得不同项目能够重用相同的依赖图,而无需在本地重新解压或重建,从而在具有温暖存储的机器上实现近乎即时的安装。启用是显式的(在 pnpm-workspace.yaml 中设置 enableGlobalVirtualStore 或通过 pnpm config),并且在 CI 中该功能会自动禁用,因为缓存通常是冷的。 (github.com)

重要性

对于维护多个仓库或大型单体仓库的工程师来说,全局虚拟存储改变了本地迭代的经济学:以前需要重新加载数千个包文件的安装和切换分支,现在可以在图匹配时减少为符号链接操作,从而缩短开发者的等待时间并提高 CI 的温缓存效益。这也是避免长时间安装步骤的一个实际替代方案,而不必将所有内容容器化。需要计划的注意事项包括该功能的实验性状态、对副作用缓存键的更改(旧缓存可能会被忽略,因此预计会有一次性重建)以及硬链接和中央存储在某些文件系统上具有不同的权限和存储影响——因此在广泛推广之前请在开发者镜像上进行验证。 (github.com)

来源

继续阅读