0


包管理工具yarn和npm的区别

yarn和npm都是常用的包管理工具,但是他们有什么区别呢?


我们先看yarn的官方定义:

YARN (Yet Another Resource Negotiator,另一种资源协调者)是由Facebook、Google、Exponent 和 Tilde 联合推出的 JS 包管理工具

简单来说(省流精简版)

大概是四点:

1 速度

2 版本锁定

3 缓存机制

4 终端输出信息的简繁

4 语法差别

详细来说(详细介绍版)

yarn的最初的出现是为了弥补npm的一些缺点:

1 安装速度。npm安装速度比较缓慢。而yarn的网络性能更好,下载安装速度更快

2 同一项目的一致性问题。同一个项目,安装的时候无法保持一致性。

package.json文件中,下面三种版本号在安装的时候代表不同的含义。

8.0.2”表示安装指定的8.0.2版本,

~8.0.2”表示安装8.0.X中最新的版本,

^8.0.2”表示安装8.X.X中最新的版本。
所以这种特点会出现由于同一个项目的包安装版本不同而出现bug的情况。

而yarn通过yarn.lock等机制保证了每一次拉取同一个项目依赖时,使用的都是一样的模块版本,保证了安装版本的统一。(npm后来提供了shrinkwrap命令来解决类似问题)

3 下载和安装包的出现错误的时候。下载安装包的时候,如果出现了错误,npm不会停下来,而是会继续下载和安装包,并且将所有的日志输出到终端,所以相关的报错信息就会混杂在众多输出信息中,很难被发现。

而yarn的输出信息则会简洁很多。

4 离线缓存机制(现在npm也有类似的)。如果之前已经安装过一个软件包,用Yarn再次安装时之间从缓存中获取,就不用像npm那样再从网络下载了

除此之外,其他的区别还有,指令语法的区别

标签: npm 前端 大数据

本文转载自: https://blog.csdn.net/weixin_51472145/article/details/126089949
版权归原作者 Bule Guy 所有, 如有侵权,请联系我们删除。

“包管理工具yarn和npm的区别”的评论:

还没有评论