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

相关推荐
计算机魔术师10 分钟前
英伟达据报洽谈向 Mira Murati 的 Thinking Machines Lab 投资 25 亿美元
前端
变与不变80631 分钟前
js函数与封装详细解答
前端·javascript·vue.js
南雨北斗1 小时前
Vue 3 项目中的拦截器的作用和写法(动态设置响应头适配表单文件上传)
前端
涛涛ing1 小时前
125秒到10秒:TypeScript 7.0用Go重写编译器,前端圈等了14年
前端
爱勇宝1 小时前
初创公司的“自己人”,到底能当多久?
前端·后端·程序员
晴天161 小时前
前端模块化规范全景解析:CommonJS、AMD、ESM、UMD
前端
三十而立洋2 小时前
深入理解 npm:从核心机制到常用命令全解析
前端·前端工程化
Canace2 小时前
最新版 Codex 工作流的问题
前端·人工智能·agent
变与不变8062 小时前
引用类型、内存原理与对象
开发语言·前端·javascript
jearry2 小时前
给 C++ 老程序补现代 UI:WebView2 多入口资源加载与虚拟主机名实践
前端