pnpm的原理和优势(monorepo)

2023-11-02

硬连接和软连接

硬连接:存储的物理磁盘上该文件的地址。比如 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:*”
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pnpm的原理和优势(monorepo) 的相关文章

随机推荐

  • python入门基础-数据类型&有序序列和无序序列;

    目录 python优点 python缺点 python应用场景 Python数据类型 字符串 string 列表 list 元组 tuple 不可变数据 1 2 3 set 集合 1 2 3 无序 自动去重 dict字典 key value
  • 基于YOLO的3D人脸关键点检测方案

    目录 前言 一 任务列表 二 3D人脸关键点数据 H3WB 2 下载方法 3 任务 4 评估 5 使用许可 3DFAW AFLW2000 3D 三 3D关键点的Z维度信息 1 基于3DMM模型的方法 2 H3WB 四 当前SOTA的方法 1
  • STM32串口下载

    使用FlyMCU下载程序 1 上电前 设置BOOT0 1 BOOT1 0 或者是在上电后 设置BOOT0 1 BOOT1 0之后 然后按一下复位按键 从而通过串口下载程序 2 在MDK编译加载生成的hex文件 并勾选右边的编程前重装文件 这
  • Unity进阶 - 动画系统 - Animations选项卡

    Unity进阶 动画系统 Animations选项卡 相关文章阅读 Unity 进阶 动画系统 Mecanim动画系统 Unity进阶 动画系统 给人物角色制作动画 Unity进阶 动画系统 人形动画的导入 Unity进阶 动画系统 导入设
  • 中国移动笔试有感

    被3号的中国移动笔试给深深地虐了 以前被像阿里阿这样的大企业虐就没啥子感觉 笔试完依旧是嘻嘻哈哈 像恒生这样的企业 笔试对我来说还是比较容易的虽然面试被刷了 说明还是需要多读书啊 但是中国移动的笔试 真的深深的激起了我学习的动力 我也不知道
  • C语言_带参宏和函数的区别及各自优缺点

    前言 C语言中 要想解决某子问题 可以自定义一个函数来专门处理该问题 比如 我想比较两个数的大小 那么我可以地定义一个函数max来完成两个数求最大值功能 但是 C语言中我们也可以通过宏定义来定义一个求最值的函数MAX 然后通过使用带参宏来完
  • 善待自己:改变命运的N个人生哲理

    心灵的栅栏 人与月亮的距离并不遥远 因为人与人心灵间的距离更为遥远 王尔德 当玛格丽特的丈夫杰瑞因脑瘤去世后 她变得异常愤怒 生活太不公平 她憎恨孤独 孀居 年 她的脸变得紧绷绷的 一天 玛格丽特在小镇拥挤的路上开车 忽然发现一幢她喜欢的房
  • 《软件测试的艺术》读后感 Or 读书笔记

    软件测试的艺术 读后感 Or 读书笔记 第一章 一次自评价测试 第二章 软件测试的心理学和经济学 第三章 代码检查 走查与评审 第四章 测试用例的设计 第五章 模块 单元 测试 第六章 更高级别的测试 第七章 可用性 或用户体验 测试 第八
  • Java—类的加载概述

    1 1 类的加载概述 当程序要使用某个类时 如果该类还未被加载到内存中 则系统会通过加载 连接 初始化三步来实现对这个类进行初始化 1 加载 是将class文件读入内存 并为之创建一个Class对象 任何类被使用时系统都会建立一个Class
  • Docker中安装Gitlab详细全教程

    前言 一 安装Gitlab 1 搜索影像 2 下载影像 3 启动Git服务 4 查看Gitlab是否已经启动 二 配置Gitlab 1 首先 先进入容器 2 修改gitlab rb文件 3 修改gitlab rb文件中的IP与端口号 3 配
  • OpenCV——求直线交点

    您可以使用OpenCV中的cv Point和cv Vec4i数据类型来表示点和直线 然后使用cv intersect函数来计算两条直线的交点 下面是一个示例代码 其中line1和line2分别表示两条直线的起点和终点 cv Point li
  • 机器学习(11)——时间序列分析

    目录 1 时间序列数据的相关检验 1 1 白噪声检验 1 2 平稳性检验 1 3 自相关分析和偏自相关分析 2 移动平均算法 2 1 简单移动平均法 2 2 简单指数平滑法 2 3 霍尔特线性趋势法 2 4 Holt Winters 季节性
  • Centos7安装dig命令

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Centos7安装dig命令 作者 jwj 时间 2018 10 17 分类 服务器 最近做一个项目 需要用到Gmail邮箱发送邮件 但发现发送不出去 排查问题时 需要用到
  • 最新SecureCRT 中文注册版

    SecureCRT是一款由VanDyke Software公司开发的终端仿真软件 它提供了类似于Telnet和SSH等协议的远程访问功能 SecureCRT专门为网络管理员 系统管理员和其他需要保密访问网络设备的用户设计 软件下载 Secu
  • filter IE滤镜(Internet Explorer)CSS

    http justcoding iteye com blog 940184 概述 CSS滤镜虽然只能在IE浏览器中表现出效果 但是仍不失为网页增加特效的好办法 1 CSS静态滤镜样式 filter CSS静态滤镜样式的使用方法 filter
  • PlatformIO基于ESP32S2的SPI软串口LCD屏调试

    文章目录 VSCode PlatformIO Arduino ESP32S2 SPI LCD 320 240 一 准备工作 二 测试 1 全屏检测 2 图形测试 参考资料 VSCode PlatformIO Arduino ESP32S2
  • 基于SSM+Vue的网上拍卖系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 采用Vue技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Mave
  • Halcon: (示例 1)OCR 字符识别

    目录 示例 涉及算子描述 text line orientation hom mat2d identity hom mat2d rotate affine trans image dots image reduce domain vecto
  • Flutter 混合架构方案探索

    得益于 Flutter 优秀的跨平台表现 混合开发在如今的 App 中随处可见 如最近微信公布的小程序新渲染引擎 Skyline 发布正式版也在底层渲染上使用了 Flutter 号称渲染速度提升50 在现有的原生 App 中引入 Flutt
  • pnpm的原理和优势(monorepo)

    硬连接和软连接 硬连接 存储的物理磁盘上该文件的地址 比如 F 恭喜发财 mp4这个文件是一个硬连接 通过它可以找到物理磁盘上该 mp4 数据的地址 软件连 是一个引用 它存储的是硬连接的地址 简而言之 它保存的是文件路径F 恭喜发财 mp