什么是pnpm
performent npm:速度快、节省磁盘空间的软件包管理器
为什么使用pnpm
使用npm安装依赖时,每次都会下载文件到硬盘中,,当项目数量较多时,依赖包会占据大量的内存,pnpm就是解决这个问题的。
pnpm如何解决 :
pnpm把依赖包存放在统一的位置
- 如果你的同一依赖包使用相同的版本,那么磁盘上只有这个依赖包的一份文件
- 如果你对同一依赖包需要使用不同版本,则仅有版本之间不同的文件会被存储起来
- 所有的文件都保存在硬盘上的统一的位置,因此:
- 当安装软件包时,其包含的所有文件都会硬链接到此位置,而不会占用额外的硬盘空间
- 这让你可以在项目之间方便地共享相同版本的依赖
如何实现
软链接和硬链接的概念
软链接(符号链接)
符号链接是一类特殊的文件,其包含有一条以绝对路径或者相对路径的形式指向其他文件或者目录的引用。
对文件引用的引用
硬链接
电脑文件系统中的多个文件平等地共享同一个文件存储单元,删除一个文件名字后,还可以用其他名字继续访问该文件。
访问图标与硬盘数据直接链接
pnpm 安装依赖时,当 pnpm 文件夹中没有依赖包时会下载依赖到硬盘中,当已经存在对应的依赖包时,则不会再次下载。
当安装完毕后 pnpm 会在项目文件的 node_modules 中创建对于依赖包的硬链接,这样当创建多个项目时引用同一个依赖只需要创建硬链接就可以。这样不管创建多少个项目同一依赖的文件只有一份。
使用
# 初始化项目
pnpm init
# 安装依赖
pnpm add axios
# 获取存储依赖的pnpm目录
pnpm store path