文档章节

新一代包管理工具yarn的安装与使用

y
 yqsailor
发布于 2017/04/29 12:13
字数 803
阅读 129
收藏 0

yarn(https://github.com/yarnpkg/yarn)

facebook发布的新一代包管理工具,旨在解决以往使用npm作为包管理会遇到的一些问题。从其官方介绍可以看到其重点强调的3个点:快、可靠、安全。

yarn拥有以下6个特性:

  • 离线模式: 一次安装,永久使用,无需下载
  • 依赖确定性:安装依赖锁定,保证一致性
  • 更好的网络性能:下载包,优化网络请求,最大限度提高网络利用率
  • 多注册来源处理:不管依赖包被不同的库间接关联引用多少次,安装这个包时,只会从一个注册来源去装(npm/bower), 防止出现混乱不一致。
  • 网络弹性处理: 安装依赖时,不会因为某个单次网络请求的失败导致整个安装挂掉。当请求失败时会进行自动重试。
  • 扁平模式: 当关联依赖中包括对某个软件包的重复引用,在实际安装时将尽量避免重复的创建 

安装方法(https://yarnpkg.com/en/docs/install)

  • 安装方式1: npm i -g yarn
  • 安装方式2: window下载msi,linux 和 mac 上使用 shell 指令来安装(依赖Node)

使用方法

yarn的命令基本跟npm的大同小异,使用yarn init生成package.json文件,用yarn add 和 yarn add —dev 分别替换 npm install --save 和 npm install --dev 命令即可。具体命令可以参考(https://yarnpkg.com/en/docs/cli/)
执行yarn / yarn install 解析package.json时,分为4个步骤:

  • 依赖关系解析:yarn在解析package.json文件时,会对其每个依赖包进行遍历分析生成yarn.lock文件。该文件描述了项目中每个包以及每个包中所依赖的包的版本信息。
  • 包下载:根据第一步中解析的结果下载特定版本的包。如果该包曾经被下载过,则跳过此次的下载操作,直接使用本地缓存,即yarn的离线模式特性。
  • 包关联:关联拷贝下载或者缓存在全局的包到项目。
  • 包编译:编译项目中使用到的包。 yarn.lock(该文件用于锁定包版本已保障每次编译的结果一致,也可通过yarn install --no-lockfile 命令设置不生成yarn.lock文件):
  •  

yarn & npm 常用命令比较

  • npm install === yarn / yarn install
  • npm install xxx —save === yarn add xxx
  • npm uninstall xxx —save === yarn remove xxx
  • npm install xxx —save-dev === yarn add xxx —dev
  • npm update === yarn upgrade
  • npm install xxx -g === yarn global add xxx

当然,在比较选择yarn与npm时,速度也是一个很重要的衡量指标。

yarn & npm 速度比较

使用注意

  • yarn 原仓库包下载不稳定 需要设置仓库镜像为淘宝镜像
      yarn config set registry https://registry.npm.taobao.org
    
  • script run 有时会存在异常问题

总结

  • yarn 相比 npm 最直观优势就是快
  • 目前项目在基本可以无痛迁移使用。
  • yarn 目前并不是非常稳定,不少反馈script run以及下载包有问题。
  • lock功能具有双面性,是否锁定版本需要看具体情况而定

© 著作权归作者所有

y
粉丝 1
博文 40
码字总数 22665
作品 0
浦东
程序员
私信 提问
Yarn(包管理器) 的基本用法

Yarn是一个快速、可靠、安全的依赖管理工具,是npm的代替品。 Yarn对你的代码来说是一个包管理工具,你可以通过它使用全世界开发者的代码,或者分享自己的代码。 安装Yarn: 操作系统不同,安...

帝子兮
2018/12/10
0
0
Yarn v0.24.2 发布,新型 Javascript 包管理器

Yarn 是 Facebook 贡献 Javascript 包管理器,用于替代现有的 npm 客户端或者其他兼容 npm 仓库的包管理工具。Yarn 保留了现有工作流的特性,优点是更快、更安全、更可靠。 特性: 极速:Yar...

王练
2017/05/08
1K
13
Yarn 与 npm 的差异

出处地址 Yarn 是Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具。目的是为了解决一些 npm 的缺陷而诞生的。 Yarn 与 npm 的主要差异: Yarn 会默认锁定模块版本,而...

JNG
2017/01/12
0
0
Yarn v0.16.1 发布,Facebook 新推的包管理器

Yarn v0.16.1 发布了,Yarn 是 Facebook 贡献 Javascript 包管理器,用于替代现有的 npm 客户端或者其他兼容 npm 仓库的包管理工具。Yarn 保留了现有工作流的特性,优点是更快、更安全、更可...

王练
2016/10/24
1K
7
Yarn v0.17.3 发布,新型包管理器

Yarn 0.17.3 发布了,Yarn 是 Facebook 贡献 Javascript 包管理器,用于替代现有的 npm 客户端或者其他兼容 npm 仓库的包管理工具。Yarn 保留了现有工作流的特性,优点是更快、更安全、更可靠...

王练
2016/11/18
1K
13

没有更多内容

加载失败,请刷新页面

加载更多

将博客搬至CSDN

https://blog.csdn.net/qq_38157006

Marhal
5分钟前
0
0
unicode Java中求字符串长度length()和codePointCount()的区别

在计算字符串长度时,Java的两种方法length()和codePointCount()一度让我困惑,运行书上例子得到的长度值是相等的,那为什么要设定两个方法呢? 对于普通字符串,这两种方法得到的值是一样的...

泉天下
5分钟前
0
0
uin-app 一、学习理由

选择uni-app 理由 别人的理由 1. 5+ 有HTML5+和Native.js技术,HTML5+包含常用的跨平台的几百个API,能满足常规开发需求,而Native.js把40w原生api映 射成js对象,这样js可以直接调原生。HTM...

轻轻的往前走
7分钟前
0
0
方括号及其在命令行中的不同用法介绍

通配 方括号最简单的用法就是通配。你可能在知道“ Globbing”这个概念之前就已经通过通配来匹配内容了,列出具有相同特征的多个文件就是一个很常见的场景,例如列出所有 JPEG 文件: ls *.j...

Linux就该这么学
13分钟前
0
0
vecty 基础

gopherjs 是把 go 编译为 js 的工具。 vecty 是基于 gopherjs 的一种类似 React 的开发框架。 安装 gopherjs 和 vecty go get -u github.com/gopherjs/gopherjsgo get -u github.com/gopher......

electricface
13分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部