主页 > 手机  > 

pnpmvsnpm

pnpmvsnpm
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 来管理依赖!🎉


📌 你学会了吗?如果遇到问题,欢迎留言交流!💡

标签:

pnpmvsnpm由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“pnpmvsnpm