有了npm,为什么还要有pnpm?其实就是pnpm解决了npm的一些问题,所以pnpm有更多的优点。
pnmp采用了hard link机制(硬链接)。所有的包都存储在磁盘上的一个全局存储中心(Store)。你项目中的node_modules文件中其实没有真正的文件,而是指向Store中的一个链接。
npm的每个项目都有自己的node_modules。如果其中有大量重复的包,就会浪费存储资源
优点1.节省磁盘空间
优点2.杜绝幽灵依赖:
npm中,包是扁平化存放的。因此如果你安装了A,A依赖B,那么你依然可以直接调用B。但是这很危险。因为可能某个原因,你卸载了A,这会导致所有依赖B的部分报错
而pnpm严格限制了这一点:只有在package.json中显示声明的包才可以直接引用
优点3:pnpm安装速度快
常用的pnpm的命令:
安装包 npm install -> pnpm install
添加特定包 npm install express -> pnpm add express
卸载包 npm uninstall express -> pnpm remove exoress
运行脚本 npm run dev -> pnpm dev
安装方式:执行npm install pnpm -g