npm和pnpm区别

深入浅出分析npm和pnpm的区别 : 深入浅出 npm & yarn & pnpm 包管理机制 - 知乎

npm的缺点

幽灵依赖

幽灵依赖是指在 package.json 中未定义的依赖,但项目中依然可以正确地被引用到。 比如A依赖了B, 所以安装A后,B会和A同级出现,所以项目中可以正常引用B,但package.json中却没有声明对B的依赖 幽灵依赖是由依赖的声明丢失造成的,如果某天某个版本的 A 依赖不再依赖 B 或者 B 的版本发生了变化,那么就会造成依赖缺失或兼容性问题。

依赖分身

如果是以下的依赖场景

  • A 和 D 依赖 B@1.0

  • C 和 E 依赖 B@2.0

那么B@1.0和AD同级,而C和E下会各安装一次B@2.0, 即B@2.0被重复安装

pnpm的优点

pnpm - performant npm,在 2017 年正式发布,定义为快速的,节省磁盘空间的包管理工具,开创了一套新的依赖管理机制,成为了包管理的后起之秀 与依赖提升和扁平化的 node_modules 不同,pnpm 引入了另一套依赖管理策略:内容寻址存储。 该策略会将包安装在pnpm系统的全局 store 中,依赖的每个版本只会在系统中安装一次。 在引用项目 node_modules 的依赖时,会通过硬链接与符号链接在全局 store 中找到这个文件。为了实现此过程,node_modules 下会多出 .pnpm 目录࿰

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值