从面试题Yarn解决了npm的什么问题到npm的逆袭进化

Yarn通过并行下载和lock文件解决了npm的安装速度和版本一致性问题。它提供了更简洁的输出和语义化的命令,支持离线模式,并采用扁平化的依赖结构。npm后来通过npm@5及以上的版本逐渐引入了类似的功能,如package-lock.json和npx命令。
摘要由CSDN通过智能技术生成

先从一道面试题说起,Yarn解决了npm的什么问题?

1.安装速度

从安装速度来看,Yarn 比 npm 更快,因为它使用了并行下载机制,可以在下载时同时安装多个包。

而npm安装插件是从国外服务器进行下载,而且是处理完一个包再处理下一个包,这造成了两个包管理器安装的差异

目前yarn官方源和npm官方源的地址都在cloudflare,可以通过改为国内源或者使用cnpm来提升单个包下载速度

2.安装版本差异

"1.0.1"   # 表示安装指定的1.0.1版本
"~1.0.1"  # 表示安装1.0.X中最新的版本
"^1.0.1"  # 表示安装1.X.X中最新的版本

这造成不同时间安装的1.x.x的最新版本可能不同,而yarn在安装包时候会在lock file文件记下每一个包的安装版本,换句话yarn会默认生成锁定文件

目前也有package-lock.json实现类似的功能npm 5已经支持

3.早期npm的树形结构,后续npm@3.x已经支持(2015)

早期node_modules是嵌套的,这种结构问题在于会复制同样的依赖很多次,占据大量空间

还会超过windows路径最多260个字符的路径长度限制

yarn给出了扁平化的目录结构

4.不支持离线模式,后续npm@5已经支持(2017.5)

离线模式指安装过的包会被保存进缓存目录,下次安装直接从文件夹缓存中复制过来

这样会提升安装速度,避免不必要的重复下载,但是会占用一些空间

yarn支持而早期npm不支持

5.简洁的输出

npm的输出信息较为复杂,而且在安装时会不断打印出所有被安装上的依赖

而yarn的输出就仅是必要而简洁的输出

6.语义化的命令

早期npm安装时会有--save等参数来确

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值