pnpm包管理工具的理解-爱代码爱编程
相对于npm优势
- 速度快
- 节省磁盘空间,如:
当使用 npm 时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被 存放在一个统一的位置,因此:
a: 如果你对同一依赖包需要使用不同的版本,则仅有 版本之间不同的文件会被存储起来。例如,如果某个依赖包包含 100 个文件,其发布了一个新 版本,并且新版本中只有一个文件有修改,则 pnpm update 只需要添加一个 新文件到存储中,而不会因为一个文件的修改而保存依赖包的 所有文件。
b: 所有文件都保存在硬盘上的统一的位置。当安装软件包时, 其包含的所有文件都会硬链接自此位置,而不会占用 额外的硬盘空间。这让你可以在项目之间方便地共享相同版本的 依赖包。
c: 最终结果就是以项目和依赖包的比例来看,你节省了大量的硬盘空间, 并且安装速度也大大提高了!
硬连接和软链接
- 硬连接:是电脑文件系统中的多个文件平等地共享同一个储存单元。删除一个文件名称后,还可以用其它名字继续访问该文件
- 软链接(也称符号链接):是一类特殊的文件,其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用(如创建桌面快捷方式)
创建硬连接的命令
// 假设当前目录存在一个index.js ,则通过cmd进入到当前文件夹下,执行如下命令可创建xxx.js
// window 系统 的执行命令
mklink /H xxx.js index.js
// mac 系统执行命令
ln index.js xxx.js
// xxx.js 与 index.js 来自于同一个磁盘数据data,改变xxx.js里的内容,index.js中也会被更改
创建软连接的命令
// window 系统 执行的命令
mklink xxx.js index.js
// mac 系统执行的命令
ln -s index.js xxx.js
注意:软连接,若是删除了原文件index.js, 则xxx.js文件打不开。没删除前,去双击打开xxx.js的时候,其实是点开了index.js文件
pnpm 创建 非扁平化node_modules目录
pnpm 的命令
// 把pnpm目录中 暂时用不到的包 会给删除掉,减少pnpm包过多问题
pnpm store prune
// 查看pnpm 的目录位置
pnpm store path