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/
相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万4 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋4 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁4 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95274 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大4 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师4 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学4 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端