Yarn

发布时间 2023-07-02 16:06:18作者: porter_代码工作者
  1. 常用命令
  • yarn / yarn install 等同于npm install 批量安装依赖
  • yarn add xxx 等同于 npm install xxx —save 安装指定包到指定位置
  • yarn remove xxx 等同于 npm uninstall xxx —save 卸载指定包
  • yarn add xxx —dev 等同于 npm install xxx —save-dev
  • yarn upgrade 等同于 npm update 升级全部包
  • yarn global add xxx 等同于 npm install xxx -g 全局安装指定包

 

什么是 Yarn

Yarn 就是一个类似于 npm 的包管理工具,它是由 facebook 推出并开源。

与 npm 相比,yarn 有着众多的优势,主要的优势在于:速度快、离线模式、版本控制。

速度快

npm 会等一个包完全安装完才跳到下一个包,但 yarn 会并行执行包,因此速度会快很多。

Yarn 会缓存它下载的每个包,所以无需重复下载。它还能并行化操作以最大化资源利用率,安装速度之快前所未有。

离线模式

之前安装过的包会被保存进缓存目录,以后安装就直接从缓存中复制过来,这样做的本质还是会提高安装下载的速度,避免不必要的网络请求。

可靠可确定性

保证各平台依赖的一致性

网络优化

力求网络资源最大利用化,让资源下载完美队列执行,避免大量的无用请求,下载失败会自动重新请求,避免整个安装过程失败

扁平化模式

对于不匹配的依赖版本的包创立一个独立的包,避免创建重复的。 对于多个包依赖同一个子包的情况,yarn 会尽量提取为同一个包,防止出现多处副本,浪费空间。

版本控制

npm 用下来比较强的一个痛点就是:当包的依赖层次比较深时,版本控制不够精确。会出现相同 package.json,但不同人的电脑上安装出不同版本的依赖包,出现类似“我的电脑上可以运行,别的电脑上不行”的 bug 很难查找。你可以使用 npm-shrinkwrap 来实现版本固化,版本信息会写入 npm-shrinkwrap.json 文件中,但它毕竟不是 npm 的标准配置。

而 yarn 天生就能实现版本固化。会生成一个类似 npm-shrinkwrap.json 的 yarn.lock 文件,而文件内会描述包自身的版本号,还会锁定所有它依赖的包的版本号:

 

 

https://juejin.cn/post/7034705127868989447