·
17 岁高三学生 | 业余前端|React & Nextjs | UI & UX 设计

速度上比yarn稍快一点,pnpm装包用的是文件硬链接,所有包都有单份的特定版本的存档,安装时用链接。pnpx(代替npx)的速度可能稍慢一些。最大的好处在于解决了幽灵依赖的问题,yarn和npm后期版本(貌似是v5以后,记得不是很清楚了)的node_modules文件夹底下的依赖是拍平的,如果A依赖B,B依赖C,A事实上可以导入C,但这会在复杂生产环境出现问题也会影响打包器;并且版本管理不善总是有peerDependencies的各种问题。pnpm的node_modules以包为单位,包的依赖包只有相应包可以访问,不存在幽灵依赖问题,其次pnpm有利于同库的不同版本在不同库的依赖下共存。这都是对比yarn和pnpm的优势,劣势是社区还不大,特别是国内用的少,有问题只能找github issue比较麻烦。还有一些偶然的奇怪bug,不过生产环境已经非常可用了,其workspace(类似yarn v1和npm v7)可以很方便的建立monorepo,配合turbo或者nx很是方便。

反正用看看才知道,没什么损失,即使换了包管理器也只是根据package.json重装一遍依赖而已

Replies
1

纠正一下,拍平依赖的npm版本是v3,yarn的话一直都是