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