qinzeBlog
#
pnpm 的小记
#
pnpm 有什么优势
在性能上有了极大的提升,根据目前官方提供的数据来看,pnpm 是传统的 npm、yarn 包管理工具的速度的两倍
基于 hardlink 机制,在全局 store 中存储 node_modules 依赖里面的 hard link 地址,然后在引用依赖的时候则是通过 symlink 去找到对应虚拟磁盘目录下(.pnpm 目录)的依赖地址,当安装软件包时, 其包含的所有文件都会硬链接自此位置,而不会占用 额外的硬盘空间,从而大大节省了磁盘空间。
避免幽灵依赖,解释起来很简单,在我们的项目中就算某个包没有被安装,也就是 package.json 中并没有,但是我们却能够引用到这个包。防止其中一个依赖发生变化导致全局出错,依赖提升的安全问题
#
补充:当 npm i xx 的时候,发生了什么?
在 node_modules/.bin/ 目录中创建依赖的可执行文件
下载 package.json 中对应版本的 tar 包到本地
将依赖解压到本地缓存
将依赖从缓存拷贝到 node_modules 下对应的目录,并且将该目录软链接到 ./node_modules/.bin 目录下
←
代码简洁和代码优雅
对 JavaScript 闭包的回顾
→