核心问题:安装更快就不用说了,核心解决了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不同模块依赖同个模块会重复安装问题