pnpmvsnpm
- 手机
- 2025-09-05 20:54:05

pnpm vs npm:区别与常见操作指南
在现代前端开发中,包管理工具是不可或缺的。最常见的包管理工具有 npm、yarn 和 pnpm。其中,pnpm 以其高效的磁盘利用率和更快的安装速度受到越来越多的开发者青睐。
本文将对比 pnpm 和 npm,并介绍 pnpm 的常见配置及操作。
一、pnpm vs npm:核心区别 特性pnpmnpm磁盘占用低:采用硬链接和符号链接共享 node_modules,节省磁盘空间高:每个项目都有完整的 node_modules 目录,占用大量存储安装速度快:复用全局缓存中的依赖,安装速度快相对较慢:每次安装都会复制依赖一致性高:严格依赖 lockfile,保证一致的依赖树低:依赖解析可能不同,导致 node_modules 结构不同并发性高:默认启用 多线程下载,加快安装速度低:npm 默认是单线程下载包管理方式使用全局存储 + 硬链接,避免重复下载直接复制依赖,可能存在冗余
📌 结论: pnpm 更快、更节省磁盘空间,适合中大型项目。
二、如何安装 pnpm
pnpm 可以通过 npm 或 corepack 安装:
# 通过 npm 安装 npm install -g pnpm # 或者使用 corepack(Node.js 16.9+ 支持) corepack enable corepack prepare pnpm@latest --activate安装完成后,验证是否安装成功:
pnpm -v如果输出 pnpm 的版本号,说明安装成功。
pnpm更新 pnpm setup pnpm self-update
三、设置 pnpm 镜像源(适用于国内用户)
由于 pnpm 默认使用 npmjs 官方源,国内访问可能较慢。可以切换为 淘宝镜像(npmmirror) 以提高下载速度:
pnpm config set registry registry.npmmirror验证是否成功:
pnpm config get registry如果返回 registry.npmmirror ,则设置成功。
恢复默认源:
pnpm config delete registry四、常见的 pnpm 操作 1. 初始化项目 pnpm init
等同于 npm init,创建 package.json。
2. 安装依赖 pnpm install安装 package.json 中所有依赖。
安装单个依赖(生产环境)
pnpm add axios安装单个依赖(开发环境)
pnpm add eslint -D安装指定版本
pnpm add lodash@4.17.21 3. 删除依赖 pnpm remove lodash 4. 运行脚本 pnpm run dev pnpm run build等同于 npm run dev。
5. 升级 pnpm pnpm add -g pnpm 6. 清理缓存如果遇到依赖安装问题,可以尝试清理缓存:
pnpm store prune pnpm store status五、解决 pnpm 依赖安装问题 1. 依赖无法下载(404 Not Found 或超时)
可能是 npm 官方源连接失败,解决方案:
pnpm config set registry registry.npmmirror pnpm install 2. 依赖安装失败,需要手动批准构建脚本如果遇到如下警告:
Ignored build scripts: core-js, esbuild. Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.执行:
pnpm approve-builds然后选择要允许的构建脚本。
按 空格键(<space>) 选中 core-js 和 esbuild按 回车键(<Enter>) 确认 3. 依赖安装失败,尝试重新安装 rm -rf node_modules pnpm-lock.yaml pnpm install这将删除 node_modules 并重新安装所有依赖。
六、总结 操作npmpnpm初始化项目npm initpnpm init安装所有依赖npm installpnpm install添加依赖npm install axiospnpm add axios移除依赖npm uninstall axiospnpm remove axios运行脚本npm run devpnpm run dev切换镜像源npm config set registrypnpm config set registry清理缓存npm cache clean --forcepnpm store prune 🚀 为什么选择 pnpm?
✅ 速度快(复用缓存 + 多线程下载) ✅ 占用磁盘少(使用 hard links 共享 node_modules) ✅ 依赖管理更严格(lockfile 机制更优)
如果你正在开发 Vue、React、Node.js 项目,强烈推荐使用 pnpm 来管理依赖!🎉
📌 你学会了吗?如果遇到问题,欢迎留言交流!💡
下一篇
网络优化工作流程