功能比較
| 功能 | pnpm | Yarn | npm | Notes |
|---|---|---|---|---|
| 工作區支援 | ✅ | ✅ | ✅ | |
隔離式 node_modules 資料夾 | ✅ | ✅ | ✅ | Default in pnpm. |
提升式 node_modules 資料夾 | ✅ | ✅ | ✅ | Default in npm. |
| 隨插即用 | ✅ | ✅ | ❌ | Default in Yarn. |
| 自動安裝同儕節點 | ✅ | ❌ | ✅ | |
| 零安裝 | ❌ | ✅ | ❌ | |
| 修補相依性 | ✅ | ✅ | ❌ | |
| 管理 Node.js 版本 | ✅ | ❌ | ❌ | |
| Managing versions of itself | ✅ | ✅ | ❌ | |
| 有 lockfile | ✅ | ✅ | ✅ | pnpm-lock.yaml, yarn.lock, package-lock.json. |
| 覆寫支援 | ✅ | ✅ | ✅ | Known as "resolutions" in Yarn. |
| 內容可定址存放區 | ✅ | ✅ | ❌ | Yarn uses a CAS when nodeLinker is set to pnpm. |
| 動態套件執行 | ✅ | ✅ | ✅ | pnpm dlx, yarn dlx, npx. |
| 副作用快取 | ✅ | ❌ | ❌ | |
| Catalogs | ✅ | ❌ | ❌ | |
| Config dependencies | ✅ | ❌ | ❌ | |
| JSR registry support | ✅ | ✅ | ❌ | |
| Auto-install before script run | ✅ | ❌ | ❌ | In Yarn, Plug'n'Play ensures dependencies are always up to date. |
| Hooks | ✅ | ✅ | ❌ | |
| 列出授權方式 | ✅ | ✅ | ❌ | pnpm supports it via pnpm licenses list. Yarn has a plugin for it. |
Note: To keep the comparison concise, we include only features likely to be used frequently.