PNPM入门精简版

PNPM入门精简版

pnpm文档地址:pnpm.io/zh/motivati...

使用 npm、Yarn 时,依赖每次被不同 的项目使用,都会重复安装一次。

而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,所以:

如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。

例如,如果某个包有100个文件,而它的新版本只改变了其中1个文件。那么 pnpm update 时只会向存储中心额外添加1个新文件,而不会因为仅仅一个文件的改变复制整新版本包的内容。所有文件都会存储在硬盘上的某一位置。

当软件包被被安装时,包里的文件会硬链接到这一位置,而不会占用额外的磁盘空间。

这允许你跨项目地共享同一版本的依赖。

所以总的来说,pnpm的优势就在于:

pnpm 通过软、硬链接(hark link、symbolic link) + 全局存储(store)结合的依赖管理方式完全实现了依赖树结构的包管理方式,解决了 npm3 及 yarn 中的幽灵依赖和 npm 分身的问题,提升了依赖包的安装速度,减小了磁盘空间占用。

然后就是把下面这个文件配置好,设置好工作空间,这样在你的package.json文件里面就可以通过例如 myButton:'workspace^'这样来使用。

pnpm-workspace.yaml

bash 复制代码
packages:
  # all packages in direct subdirs of packages/
  - 'packages/*'
  # all packages in subdirs of components/
  - 'components/**'
  # exclude packages that are inside test directories
  - '!**/test/**'

那么软硬连接该怎么区分呢?

转自: 掘金文章地址@我就是小傲娇

小课堂:硬链接和软连接的区别

linux下有两种链接,一种是硬链接(Hard Link),另一种是符号链接(Symbolic Link),也可以称之为软连接

  • 硬链接:只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接记录的是目标的inode。同一文件的不同硬链接文件相当于该文件的多个不同文件名,即多个不同访问路径,他们的inode都是一样的。不可以为目录创建软连接。
  • 符号链接:和原文件不是同一个文件,符号链接会有自己的inode,它所引用的是原文件的path,当原文件被移动或删除的时候,符号链接的文件就不可以。例如windows中的快捷方式。也可以为目录创建软连接。 如何建立硬链接和软连接呢 可以使用ln命令来创建
  • ln 原文件名 硬链接文件名, 例如: ln file hardfile,就是创建了file文件的硬链接文件hardfile
  • ln -s 原文件名 硬链接文件名,例如: ln -s file softfile,就是创建了file文件的硬链接文件softfile 在系统中查看操作一遍(执行以下命令)
bash 复制代码
touch file && echo 'thisi is init file' > file
ln file hardfile
ln -s file softfile 
ln -ls

可以看到hardfile和file的inode是一样的(最左侧的33038778),而softfile是有了一个自己的inode

此时如果删除file文件 rm file,再去查看hardfile和softfile看一下有什么变化

bash 复制代码
cat hardfile
cat softfile

此时会发现,hardfile文件是不受影响的,softfile已经不存在了,因为它链接到的file已经不存在了

相关推荐
北岛贰13 分钟前
啵啵音乐迎来全新升级!
前端
hkNaruto2 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
IT_陈寒2 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
Acro3 小时前
快给macOS 上的Grok Bot换一套皮肤
前端
flash俊杰3 小时前
双引擎 OCR 编排:逐页判定、视觉优先、partial 语义与三层超时
前端
计算机魔术师3 小时前
Reddit 每周被 Google 偷走 100 万次点击,CEO 摊牌了
前端
前端繁华如梦3 小时前
用 React Three Fiber 做一栋能编辑的教学楼数字孪生
前端
前端繁华如梦3 小时前
用 React Three Fiber 做一套智慧医院数字孪生:编辑器、大屏和 BIM 浏览器
前端
俊昭喜喜里4 小时前
理解全局跨域CORS配置
前端
锋行天下7 小时前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端