pnpm 绝对于 npm 和 yarn 的劣势
1.npm
和 yarn
都采纳了扁平化的装包策略。如果咱们下载 vue,执行 npm i vue
查看 node_modules
, 能够看到咱们只装置了 vue,node_modules
中却呈现了这么多包,这些包都是 vue 中用到的依赖包,那么咱们能够间接应用第三方依赖,如果有一天 vue 更新版本忽然不必某个咱们用到的依赖了,那么就会报错。这种状况也称之为 幽灵依赖
。
应用 pnpm 能够看到目录是很清晰的,咱们看到的 node_modules
中的 vue
文件夹只是一个软链接, 它的真正存储的中央在 .pnpm
文件夹中。
2. 如果有 10 个我的项目应用npm
或者 yarn
下载依赖包,那么会产生 10 个依赖包的正本占用磁盘。应用 pnpm
会将依赖包存储到对立地位,下面看到的 .pnpm
是虚拟存储目录,外面的文件是从对立地位做的硬链接,而和 .pnpm
同级的 vue
包是一个符号链接。
什么是符号链接
符号链接也能够称为软连贯。是一类非凡的文件,其蕴含有一条以绝对路径或者相对路径的模式指向其它文件或者目录的援用。就是给指标文件创建一个快捷方式,能够避免一遍又一遍地复制雷同的数据。应用软链接的形式生成的文件夹指向的是源文件,能够对源文件进行读写,删除软链接文件不会对源文件产生影响。
-
windows 零碎实操
- 1 在 D 盘创立文件夹
linkTest
,linkTest
里蕴含hello.txt
,内容如下
- 2 在 C 盘创立软链接
依据提醒进行操作
能够看到在 C 盘下生成了linkTest
文件,那么咱们当初批改 C 盘下的linkTest
文件
查看 D 盘下的linkTest
能够看到 D 盘下相应的文件也产生了变动- 3 查看一个文件是否是软链接
- 1 在 D 盘创立文件夹
什么是硬链接
硬链接(hard link,也称链接)就是一个文件的一个或多个文件名。再说白点,所谓链接无非是把文件名和计算机文件系统应用的节点号链接起来。因而咱们能够用多个文件名与同一个文件进行链接,这些文件名能够在同一目录或不同目录。在 windows 中
- 1、硬连贯实用于在同一个卷的文件级别,不容许给目录创立硬链接;
- 2、硬连贯是不能跨卷的,只有在同一文件系统中的文件之间能力创立链接
在 C 盘创立一个文件夹外面蕴含 hello.txt 文件
尝试在 D 盘创立硬链接
尝试给目录创立硬链接
给文件创建硬链接
文件内容如下
当我批改 helloCopy 之后
保留之后查看 hello.txt
文件
当我删除 hello 文件之后
helloCopy.txt
是不会被删除的
查看.pnpm 文件夹里的文件是否是硬链接
红框内的只有是几那么就证实计算机文件系统应用的节点号被创立了几次硬链接