9月9日·星期三 15:23·来源:InfoQ

pnpm 12 采用 Rust 语言重写了包管理器,在保留 pnpm 11 工作流的同时提升了安装速度

pnpm发布12版本,核心变更在于将原先基于TypeScript和Node.js的实现彻底重写为原生Rust版本,同时完整保留pnpm 11的命令、参数、设置、锁定文件格式及node_modules目录结构。此举旨在提升启动速度并降低文件系统开销,用户无需重新学习或大规模迁移。在缓存或node_modules已存在时性能提升最明显,基准测试显示,大文件集全新安装耗时从8.2秒降至5秒,预热状态下重复安装从472毫秒骤降至15毫秒。Vercel旗下21个项目组成的Turborepo工作区(含1670个包)在六种场景下安装时间中位数缩短64.4%至90.5%。不过,首次未缓存启动速度因原生Corepack工件体积更大而慢11.1%,缓存后启动速度则提升74.7%。迁移影响有限,但需注意移除`pnpm install --resolution-only`命令,改由`pnpm peers check`替代;Git依赖改为通过规范HTTPS URL解析。新版本还引入项目感知的全局二进制文件,并实现确定性循环处理,在循环密集型工作区中解析速度提升两到三倍,内存占用减少约25%。社区讨论聚焦原生工具性能与权衡,pnpm继续凭借内容可寻址存储和严格依赖布局凸显优势。
本文摘要由千智坊基于公开报道整理,查看完整内容:阅读原文(InfoQ)→