什么是Npm
npm (全称Node PackageManager,即node包管理器)是Node.js默认的、以JavaScript编写的软件包管理系统npm来分享和使用代码已经成了前端的标配,npm是Node.js默认的软件包管理系统,安装完毕node后,会默认安装好npm。npm本身也是基于Node.js开发的软件
什么是Yarn
yarn 是由 Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具,yarn 是为了弥补 npm 的一些缺陷而出现的。
Npm的缺点
- npm install 下载速度慢,即便是重新install时速度依旧慢
- 同一个项目,安装无法保持一致性。原因是因为package.json文件中版本号的特点导致在安装的时候代表不同含义
- 使用 npm 安装多个 js 包时,包会在同一时间下载和安装。安装过程中,其中一个包抛出了一个异常,但 npm 会继续安装其他包,所以错误信息就会在一大堆提示信息中丢失掉,以至于直到执行前,都不会发现实际发生的错误。
Yarn的优点
- 安装速度快 (服务器速度快 , 并且是并行下载)
- 版本锁定,安装版本统一
- 缓存机制,如果之前已经安装过一个软件包,用Yarn再次安装时之间从缓存中获取,就不用像npm那样再从网络下载了
- 输出简洁并且多注册来源处理。安装包时,直观地打印出必要的信息;不管包被不同的库间接关联引用多少次,只会从一个注册来源去装,防止出现混乱不一致。