使用 PNPM 将 React App 中的磁盘空间减少 60%

使用 PNPM 将 React App 中的磁盘空间减少 60%

在 React 应用程序中使用 PNPM 减少磁盘空间的教程。

Photo by 诺德伍德主题 on 不飞溅

您是否正在处理具有共同依赖项的多个 React 项目?如果是这样,那么这篇文章适合你。

在做多个项目或微前端应用时,你需要在每个项目上安装相同的依赖,例如,如果你在做 5 个基于 React 的项目,所有项目具有相同的依赖版本,并且每个项目都有节点模块占用大量磁盘空间的文件夹。

我们可能会从中得到一些问题。

  1. 为什么多次安装相同的依赖项而不重用它?
  2. 处理具有相同依赖项的多个项目时如何节省磁盘空间?
  3. 如何加快依赖安装?

在本文中,我们可以看到如何使用 pnpm 解决这个问题。

什么是 PNPM?

即插即用 代表高性能 npm。这是基于 NodeJS 的项目的包管理器。它专注于速度和处理磁盘空间的有效方法。它是 npmyarn 的替代品。

强调

  1. 快速地
  2. 高效的
  3. 支持 Monorepos

PNPM 的效率如何?

Pnpm 非常有效地处理磁盘内存。让我们看看如何。

pnpm 将依赖项保存在 全球商店 在您的机器上,在项目和依赖项之间创建硬链接。所以确切的 依赖关系共享 项目之间,节省了大量空间。在 npm 中,它也会复制相同的依赖,并将它们保存在项目特定的节点模块中,这增加了存储空间。

PNPM 使用非平面目录

默认, 即插即用 在全局存储和项目节点模块之间创建符号链接。但是您可以看到节点模块占用了每个项目的磁盘空间。

这是因为 硬链接 , 硬链接指向原文件所在的同一个地方。但是对于一个版本,只有一份依赖关系的副本保存在内存中。参考下图:

pnpm file structure

让我们看一个实时示例

每个 React App 的共同依赖

 “依赖”:{  
 "[ @测试](https://twitter.com/testing) -图书馆/是家“:”⁵.16.5“,  
 "[ @测试](https://twitter.com/testing) -图书馆/反应”:“¹³.3.0”,  
 "[ @测试](https://twitter.com/testing) -library/user-event": "¹³.5.0",  
 “反应”:“¹⁸.2.0”,  
 "react-dom": "¹⁸.2.0",  
 “反应脚本”:“5.0.1”,  
 “网络生命体征”:“².1.4”  
 }

使用 NPM 配置的项目

磁盘总大小: 1260 MB

使用 PNPM 配置的项目

注意:所有依赖项都将放置在全局存储中,而不是单个项目中。上表是为了区分。

磁盘总大小: 500 MB

公共依赖项放在全局存储中并由项目访问。根据上面的示例,常见的依赖项有 380MB .按照上面的例子,我们可以看到我们已经保存了 60% 的磁盘空间 以有效的方式使用pnpm

PNPM 更快

与其他依赖管理器相比,pnpm 更快,因为它在安装过程中没有阻塞阶段。每个依赖项都有自己的阶段,通过单独安装每个依赖项,下一个阶段会尽快开始。

pnpm dependency

基准

基准由 pnpm 官方文档 使用这个 包.json .

benchmarks

安装

使用 NPM

我们可以通过以下命令使用 npm 全局安装 pnpm:

 npm 安装 -g pnpm

使用自制软件

我们可以通过以下命令使用自制软件进行安装:

 冲泡安装 pnpm

作为独立脚本安装

使用卷曲

 卷曲-fsSL[ https://get.pnpm.io/install.sh](https://get.pnpm.io/install.sh) |嘘——

使用 wget

 wget -qO-[ https://get.pnpm.io/install.sh](https://get.pnpm.io/install.sh) |嘘——

使用 PNPM 创建 React App

我们可以使用以下命令来配置 React App:

 pnpm create react-app my-pnpm-app

常用命令

pnpm 安装 -> 从 package.json 安装依赖项

pnpm 添加 -> 添加依赖

pnpm 运行 -> 运行 package.json 文件中的脚本

pnpm 测试 -> 在项目中运行测试

pnpm 初始化 -> 创建一个 package.json 文件

pnpm 发布 -> 将包发布到注册表

pnpm 开始 -> 在 package.json 中运行命令以启动应用程序。

结论

即插即用 比 npm 和 yarn 更快并且更有效地处理磁盘内存。在处理多个项目和微前端应用程序时,这为我们提供了大量的可用空间。将依赖项放在全局存储上并重用它会更有效,这是其他包管理器所忽略的。

感谢您的阅读。

更多内容在 ** 纯英语.io** .注册我们的 ** 免费每周通讯** .跟着我们 ** 推特** , ** 领英** , ** YouTube** , 和 ** 不和谐** .对增长黑客感兴趣?查看 ** 电路** .

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38668/43542211

posted @ 2022-09-22 11:44  哈哈哈来了啊啊啊  阅读(237)  评论(0编辑  收藏  举报