npm与yarn的异同

npm与yarn的异同

npm

  • npm 下载的时候较慢。尤其是运行在新的项目耗时较长。删除node_modules,重新下载的时候也是如此。
  • ·同一个项目,安装的时候版本无法保持一致性。由于packagt json文件中版本号的特点,不同版本号在安装的时候代表不同的含义。如果是多人协同开发下载的版本不同,很容易在开发中出现问题。
  • 下载npm 包时,出错容易被忽略。安装的时候,包会在同一时间下载和安装,如果在中途某个时候一个包抛出了一个错误,但是npm会继续下载和安装包。因为npm会把所有的日志输出到终端,有关错误包的错误信息就会在一大堆npm打印的警告中丢失掉,并且你甚至永远不会注意到实际发生的错误。

yarn是由Facebook.Google、Exponent 和Tilde联合推出了一个新的JS包管理工具,正如官方文档中写的,Yarn 是为了弥补 npm的一些缺陷而出规的。(点击跳转到官方文档)

  • 速度快:速度快主要来自以下两个方面:yarn采用的是并行安装:无论 npm还是 Yarn 在执行包的安装时,都会执行一系列任务。npm 是按照队列执行每个package,也就是说必须要等到当前 package安装完成之后,才能继续后面的安装。而Yarn是同步执行所有任务。提高了性能。2离线模式:如果之前已经安装过一个软件包。用Yarn再次安装时会直接从缓存中获取,就不用像npm那样再从网络中下载了。
  • 安装版本统一:为了防止拉取到不同的版本, Yarn 有一个锁定文件(lock file)记录了被确切安装上的模块的版本号。每次只要新增了一个模块,Yan 就会创建〈或更新) yarn.lock这个文件。这么做就保证了,每一次拉取同一个项目依赖时,使用的都是同一个版本。npm其实也有办法实现处处使用相同版本的packages,但需要开发者执行npm shrinkwrap部令,这个命令将会生成一个锁定文件,在执行npm install 的时候,该锁定文件会先被读取,和Yarn读取 yarn.lock文件一个道理。npm和Yarn 两者的不同之处在于,Yarn 默认会生成这样的锁定文件。而npm要通过 shrink wrap命令生成npm-shrinkwrap json交件。只有当这个文件存在的时候。packages版本信息才会被记录和更新。
  • ·更简洁的输出: npm 的输出信息比较冗长。在执行nprmn install 的时候,命令行里会不断地打印出所有被安装上的依赖。相比之下,Yarn简洁太多∶默认情况下,结合了emoji喜观直接且直观地打印出必要的信息,也提供了一些命令供开发者查阅较多的安装信息。 *多注册来源处理:""所有的依赖包,不管它被不同的库间关联引用多少次,安装这个包时,只会从一个注册来源去安装,要么是npm要么是bower,防止出现混乱不一致。
  • 更好的语义化:yam改变了一些npm命令的名称。比如yarn add / remove,感觉上比 npm 原本的 install / uninstall要更清晰。

Yarn与npm 命令对比

npmyarn
npm installyarn
npm install axios --saveyarn add axios
npm uninstall react --saveyarn remove react
npm update --saveyarn upgrade
…………

未完待续……
在这里插入图片描述

随着历史的飞跃和时代的变迁,期待更多优秀插件的脱颖而出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值