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
    评论
要安装yarn,首先需要确保已经安装了npm,并且配置好了环境变量。然后可以通过运行命令 "npm install yarn -g" 来下载和安装yarn。 安装yarn相比于npm有一些优势。首先,yarn可以进行并行安装,而npm需要等待上一个任务安装完成才能继续下一个任务。其次,yarn可以离线安装,如果之前已经安装过一个包,再次使用yarn安装时会从缓存中获取,而npm会从网络下载。另外,yarn默认会锁定版本,保证环境的统一性,而npm默认会下载最新的最稳定版本,版本锁定可以解决包之间版本不兼容的问题。此外,yarn安装包时输出的信息比npm更简洁。 常用的yarn命令与npm对比如下: - 初始化项目: yarn init (npm init) - 安装依赖并保存到package.json: yarn add package_name (npm install package_name --save) - 移除依赖: yarn remove package_name (npm uninstall package_name --save) - 安装开发时的依赖: yarn add package_name --dev (npm install package_name --save-dev) - 更新依赖: yarn upgrade package_name (npm update package_name --save) - 安装全局依赖: yarn global add package_name (npm install package_name --global) - 发布/登录/退出: yarn publish/login/logout (npm publish/login/logout) - 运行命令: yarn run command_name (npm run command_name) - 运行测试: yarn test (npm test) 如果第一次使用yarn时遇到报错,可能是由于安装或配置出现了问题。可以检查一下环境是否正确配置,或者尝试重新安装yarn

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值