功能比较

功能 pnpm Yarn npm 备注
工作空间支持 ✅ ✅ ✅
隔离的 node_modules ✅ ✅ ✅ pnpm 中的默认值。
提升的 node_modules ✅ ✅ ✅ npm 中的默认值。
Plug'n'Play ✅ ✅ ❌ Yarn 中的默认值。
自动安装对等依赖 ✅ ❌ ✅
零安装 ❌ ✅ ❌
修补依赖项 ✅ ✅ ❌
管理 Node.js 版本 ✅ ❌ ❌
Managing versions of itself ✅ ✅ ❌
拥有锁文件 ✅ ✅ ✅ pnpm-lock.yaml, yarn.lock, package-lock.json.
覆盖支持 ✅ ✅ ✅ 在 Yarn 中称为 “resolutions”。
内容可寻址存储 ✅ ✅ ❌ 当 nodeLinker 设置为 pnpm 时,Yarn 使用 CAS 。
动态包执行 ✅ ✅ ✅ pnpm dlx, yarn dlx, npx.
副作用缓存 ✅ ❌ ❌
目录 ✅ ❌ ❌
配置依赖项 ✅ ❌ ❌
JSR 软件源支持 ✅ ✅ ❌
脚本运行前自动安装 ✅ ❌ ❌ 依赖项在 Yarn 中,即插即用(Plug'n'Play)可确保依赖项始终保持最新。
钩子 ✅ ✅ ❌
列出许可证 ✅ ✅ ❌ pnpm 通过 pnpm licenses list 支持它。 Yarn 有一个插件来支持这个功能。

**注意:**为了保持比较简洁,我们只包含可能经常使用的功能。