pnpm的原理和优势(monorepo)

硬连接和软连接

硬连接:存储的物理磁盘上该文件的地址。比如 F:// 恭喜发财.mp4这个文件是一个硬连接,通过它可以找到物理磁盘上该 mp4 数据的地址。

软件连:是一个引用。它存储的是硬连接的地址。简而言之:它保存的是文件路径F:// 恭喜发财.mp4。如果将原文件删除,通过软链接无法再次打开原文件。
在这里插入图片描述

node_modules

可以发现,在 npm install axios之后,node_modules 文件夹下的 axios 是一个软链接(又称快捷方式),这个软链接指向一个硬连接。
在这里插入图片描述

真正的硬连接在 .pnpm 文件夹下

在这里插入图片描述

可以这么说,真正的硬连接只在 .pnpm 文件夹下,其余的 node_modules 里面的文件都是软连接。

优势

1.节省了磁盘空间,相当于每个依赖包在磁盘中只保存了一份

2.解决了幽灵依赖的问题(npm3 中,有时 import 一个在package.json中不存在的依赖,也不会报错。因为其他的依赖可能依赖了

3.pnpm_store可以实现不同项目之前的共享:A项目和B项目都依赖axios,那么他们的.pnpm下存放的硬连接都指向同一个磁盘空间。

https://www.cnblogs.com/wangmeijian/p/16613698.html

4.在monorepo中。如果我希望某个项目可以被其他项目引用,比如 pnpm install packageA,那么就需要将 packageA 的路径写在 pmpn-workspace.yaml

在这里插入图片描述
如果是从网上下载的话,就写版本号;如果是本地依赖,就写 “workspace:*”
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codereasy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值