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已经不存在了

相关推荐
蜡台几秒前
uniapp vue2 转 vue3
前端·javascript·uni-app·vue3·vue2
Web4Browser2 分钟前
Headless 浏览器自动化适合哪些任务?巡检、截图和提交动作要分级
运维·前端·自动化
用户059540174466 分钟前
把前端内存泄漏排查从2小时压到5分钟,我们把它集成进了CI
前端·css
申君健24864182772021 小时前
Vapor 核心数据结构:Block原理
前端
Csvn1 小时前
工程化专题 | 改完组件保存,浏览器毫无反应,重启 dev server 又好了——气不气?
前端
我有满天星辰1 小时前
Vue 指令完全指南:从 Vue 2 到 Vue 3 的演进与实战
前端·javascript·vue.js
光影少年1 小时前
RN 渲染原理:不依赖WebView,原生控件渲染
前端·react native·react.js·前端框架
小白学过的代码1 小时前
# flv.js / mpegts.js 播不了国标摄像头(H.265 + G.711A)?纯前端 Jessibuca 无后端方案(附完整代码)
前端·javascript·h.265
console.log('npc')2 小时前
AI Agent 前端流式渲染核心技术文档(SSE \+ WebSocket \+ 打字机渲染)
前端·人工智能·websocket
法外狂徒12 小时前
将 Pi Agent 接入 HagiCode 的实践之路
服务器·前端·人工智能