pnpm 安装
官网下载 安装[https://github.com/pnpm/pnpm/releases/tag/v11.0.0]
npm和pnpm区别
npm 将每个依赖的副本直接复制到项目的 node_modules 文件夹中,像是为每个项目都单独购买一份仓库里已有的图纸。 而 pnpm 采用了一种更巧妙的方式:它只在一个名为“仓库”(store)的全局地方存放一份图纸,各个项目都通过一种“快捷方式”(即硬链接和符号链接)来引用它
- 关键区别如下:
| 特性维度 | pnpm (新一代性能工具) | npm (传统的 Node.js 默认工具) | 核心优势 |
|---|---|---|---|
| 磁盘占用 | 极低 | 高 | pnpm 通过全局存储 + 硬链接节省大量空间。例如,10个项目安装相同依赖时,npm 需 1.2 GB,而 pnpm仅需 320 MB。 |
| 安装速度 | 快速 | 较慢 | pnpm 因无需重复下载与写入,比 npm 快 2-3 倍。 |
| 依赖安全性 | 严格隔离 | 高度扁平化 | pnpm 的 node_modules 结构消除了"幽灵依赖"风险,强制所有依赖显式声明。 |
| Monorepo 支持 | 原生强力支持 | 基础支持 | pnpm 通过内置 workspace 命令,为管理多包仓库提供了流畅体验。 |
| 锁文件 | pnpm-lock.yaml | package-lock.json | 两者都是严格的版本锁定文件,确保环境一致性。 |
pnpm对nodejs版本依赖
| pnpm 版本 | 最低 Node.js 版本 | 关键变化 / 说明 |
|---|---|---|
| 11.0 | v22.0 或更高 | 以纯 ESM 形式发布,不再支持 v18、v19、v20、v21。 |
| 10.0 | 约 v18.12 | 引入将依赖绑定到所需 Node.js 版本的能力。 |
| 9.0 | v18.12 或更高 | 不再支持 Node.js v16。 |
| 8.0 | v16.14 或更高 | 可通过独立脚本等方式在无 Node.js 环境下安装。 |
| 7.0 | v14.0 或更高 | 不再支持 Node.js 12。 |
| 6.0 | v12.17 或更高 | 不再支持 Node.js 10。 |
| 5.0 | 约 v12.0 | 最后一个支持 Node.js 12 的早期版本。 |
pnpm环境变量配置
配置 PNPM_HOME 环境变量,将上面应用解压安装到这里

验证是否安装成功
pnpm -v

pnpm特殊指定目录,默认都在PNMP_HOME下面
| 配置项 | 作用说明 | 配置命令示例 | 对应关系 |
|---|---|---|---|
store-dir | 全局依赖仓库。所有下载过的依赖包都存放在这,可以把它指定到一个大容量的硬盘分区。 | pnpm config set store-dir "D:\.pnpm-store" | pnpm store path 命令会显示此路径。 |
global-dir | 全局包的安装目录。所有通过 pnpm add -g 安装的包都会放在这里。 | pnpm config set global-dir "D:\.pnpm-global" | PNPM_HOME 环境变量在较新版本中可能直接影响此目录。 |
global-bin-dir | 全局命令的存放目录。全局包提供的可执行命令(如 pnpm 自身)会放在这里。需要将此路径添加到系统的 PATH 变量中,才能在终端里直接调用这些全局命令。 | pnpm config set global-bin-dir "D:\.pnpm-global\bin" | pnpm setup 通常会自动处理此路径。 |
cache-dir | 存储 pnpm 下载的包缓存,可以加速后续安装。 | pnpm config set cache-dir "D:\.pnpm-cache" | - |
- pnpm config set store-dir "D:\nodejs\pnpm-cache"
存量npm项目切换pnpm
- 清理环境
删除现有项目中的 node_modules 文件夹和 package-lock.json 文件
- pnpm install
pnpm 会根据 package.json 生成高效的 node_modules 结构并创建 pnpm-lock.yaml 文件
pnpm镜像配置
- pnpm config set registry https://registry.npmmirror.com
- pnpm pnpm config get registry
