随手写系列-为什么pnpm比npm/yarn做的更好

118 阅读1分钟

核心问题:安装更快就不用说了,核心解决了npm/yarn安装不同模块,其依赖的相同的模块还是会重复安装

pnpm怎么处理的:

核心:--本质上都是文件访问的方式

hard link(硬链接) symlink(软链接或符号链接symbolic link)

从模块安装来看: 举例安装一个lodash模块:

会创建两个目录:一个pnpm和lodash目录

1.lodash目录存放lodash模块访问的软链--当你require/import模块时候会访问该目录

2.pnpm存放安装的模块,同时会生成模块硬连存放到store目录 当你访问软链时候会到store目录找到对应模块的硬链进行访问

总结来说: require->模块软链->store目录寻找硬链->pnpm真实的模块(每个模块安装的时候会硬链挂载保存到全局的store目录下)

简洁来说:通过链接指针来解决yarn/npm不同模块依赖同个模块会重复安装问题