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/
相关推荐
dy17173 小时前
element-plus表格默认展开有子的数据
前端·javascript·vue.js
2501_915918416 小时前
Web 前端可视化开发工具对比 低代码平台、可视化搭建工具、前端可视化编辑器与在线可视化开发环境的实战分析
前端·低代码·ios·小程序·uni-app·编辑器·iphone
程序员的世界你不懂7 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
索迪迈科技7 小时前
网络请求库——Axios库深度解析
前端·网络·vue.js·北京百思可瑞教育·百思可瑞教育
gnip7 小时前
JavaScript二叉树相关概念
前端
attitude.x8 小时前
PyTorch 动态图的灵活性与实用技巧
前端·人工智能·深度学习
β添砖java8 小时前
CSS3核心技术
前端·css·css3
空山新雨(大队长)8 小时前
HTML第八课:HTML4和HTML5的区别
前端·html·html5
猫头虎-前端技术9 小时前
浏览器兼容性问题全解:CSS 前缀、Grid/Flex 布局兼容方案与跨浏览器调试技巧
前端·css·node.js·bootstrap·ecmascript·css3·媒体