ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] > [home](https://pnpm.io/zh/) ## 概述 **节省磁盘空间** 使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次。 而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,所以: 1. 如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库 2. 所有文件都会存储在硬盘上的某一位置。 当软件包被被安装时,包里的文件会硬链接到这一位置,而不会占用额外的磁盘空间。 这允许你跨项目地共享同一版本的依赖 **提高安装速度** 1. 依赖解析。 仓库中没有的依赖都被识别并获取到仓库。 2. 目录结构计算。 3. 链接依赖项。 | 功能 | pnpm | Yarn | npm | | --- | --- | --- | --- | | 工作空间支持(monorepo) | ✔️ | ✔️ | ✔️ | | Isolated`node_modules` | ✔️ - 默认 | ✔️ | ✔️ | | Hoisted`node_modules` | ✔️ | ✔️ | ✔️ - 默认 | | 自动安装 peers | ✔️ | ❌ | ✔️ | | Plug'n'Play | ✔️ | ✔️ - 默认 | ❌ | | 零安装 | ❌ | ✔️ | ❌ | | 修补依赖项 | ✔️ | ✔️ | ❌ | | 管理 Node.js 版本 | ✔️ | ❌ | ❌ | | 有锁文件 | ✔️ -`pnpm-lock.yaml` | ✔️ -`yarn.lock` | ✔️ -`package-lock.json` | | 支持覆盖 | ✔️ | ✔️ - 通过 resolutions | ✔️ | | 内容可寻址存储 | ✔️ | ❌ | ❌ | | 动态包执行 | ✔️ - Via`pnpm dlx` | ✔️ - Via`yarn dlx` | ✔️ - Via`npx` | | 辅助缓存 | ✔️ | ❌ | ❌ | | 列出许可证 | ✔️ - Via`pnpm licenses list` | ✔️ - 通过插件 | ❌ | ## 安装 window powershell ``` Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression ``` 类 unix ``` curl -fsSL https://get.pnpm.io/install.sh | sh - ``` npm 安装 ``` npm install -g pnpm ```