- pnpm 安装
- npm和pnpm区别
- pnpm对nodejs版本依赖
- pnpm环境变量配置
- 验证是否安装成功
- pnpm特殊指定目录,默认都在PNMP_HOME下面
- 存量npm项目切换pnpm
- pnpm镜像配置
pnpm 安装
官网下载 安装[github.com/pnpm/pnpm/r…]
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 registry.npmmirror.com
- pnpm pnpm config get registry