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 小时前
为什么 React 中的 key 不能用索引?
前端
你的人类朋友4 小时前
【Node】手动归还主线程控制权:解决 Node.js 阻塞的一个思路
前端·后端·node.js
小李小李不讲道理6 小时前
「Ant Design 组件库探索」五:Tabs组件
前端·react.js·ant design
毕设十刻6 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
cdming7 小时前
Node.js 解释环境变量的定义、作用及在Node.js中的重要性,区分开发、测试、生产环境配置需求。
node.js
mapbar_front7 小时前
在职场生存中如何做个不好惹的人
前端
牧杉-惊蛰7 小时前
纯flex布局来写瀑布流
前端·javascript·css
一袋米扛几楼988 小时前
【软件安全】什么是XSS(Cross-Site Scripting,跨站脚本)?
前端·安全·xss
向上的车轮8 小时前
Actix Web适合什么类型的Web应用?可以部署 Java 或 .NET 的应用程序?
java·前端·rust·.net
XiaoYu20029 小时前
第1章 核心竞争力和职业规划
前端·面试·程序员