pnpm和npm的区别

pnpm 和 npm 都是用于管理 Node.js 项目中依赖包的工具,但它们有一些关键的不同点。

npm(Node Package Manager)

  • 安装和管理依赖: npm 是 Node.js 官方的包管理工具,用于安装和管理项目的依赖包。
  • 工作原理: 每次安装依赖时,npm 会在 node_modules 文件夹中创建一个完整的依赖树,可能导致依赖重复,占用更多磁盘空间。
  • 性能: 在处理大量依赖时,npm 的安装速度可能较慢,特别是在大项目中。

pnpm

  • 全名: pnpm 是 "Performant npm" 的缩写。
  • 工作原理: pnpm 通过使用全局的缓存和符号链接来高效管理依赖。它会将依赖包存储在全局的缓存目录中,并通过符号链接将这些依赖链接到每个项目的 node_modules 文件夹中。这样可以避免重复下载和存储相同的依赖,节省磁盘空间。
  • 性能: 由于采用了这种缓存和符号链接的机制,pnpm 的安装速度通常比 npm 更快,特别是在处理大量依赖时。
  • 隔离性: pnpm 还提供了更好的依赖隔离性,确保不同项目的依赖不会互相干扰。

pnpm 主要优势

  1. 节省空间:由于使用了符号链接,pnpm 能显著减少磁盘空间的使用。
  2. 更快的安装速度:缓存机制使得重复的安装操作变得更快。
  3. 更好的依赖隔离:pnpm 确保了项目依赖的隔离性,避免了潜在的依赖冲突问题。

使用

要使用 pnpm,你可以先通过 npm 安装它:

shell 复制代码
npm install -g pnpm

然后在项目中使用 pnpm 来安装依赖:

shell 复制代码
pnpm install

总体来说,pnpm 是一个高效的包管理工具,特别适合需要处理大量依赖或需要节省磁盘空间的项目。

更改 pnpm 的源

pnpm 默认使用的是 npm 官方的注册表。不过,和 npm 一样,你也可以根据需要更改 pnpm 的源。例如,如果你在中国大陆使用 pnpm,可能会因为网络原因需要使用更快的镜像源。

1. 查看当前源:

shell 复制代码
pnpm config get registry

2. 设置新的源:

例如,要将源设置为淘宝的 npm 镜像,你可以执行以下命令:

shell 复制代码
pnpm config set registry https://registry.npmmirror.com/

常见的镜像源

yaml 复制代码
淘宝镜像(目前由 npmmirror 维护):https://registry.npmmirror.com/
cnpm(npm 的一个镜像,提供中国大陆的服务):https://r.cnpmjs.org/
npm 镜像(由中国科学技术大学提供):https://registry.npmjs.org/
npm.taobao.org 镜像(不再维护,建议使用 npmmirror):https://registry.npm.taobao.org/
相关推荐
恋猫de小郭13 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
崔庆才丨静觅19 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606120 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了20 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅20 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅21 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅21 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment21 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅21 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊21 小时前
jwt介绍
前端