coconilu / Blog

:octocat: 前端工程师的思维宫殿
164 stars 20 forks source link

Yarn 使用手册 #142

Open coconilu opened 5 years ago

coconilu commented 5 years ago

概述

据官方文档描述,Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具,为了解决NPM在一致性、安全性、性能方面的问题。

Yarn有下面几个方面的优势:

  1. 速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。
  2. 超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。
  3. 超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。
  4. 一致性。为了防止拉取到不同的版本,Yarn 有一个锁定文件 (lock file) 记录了被确切安装上的模块的版本号。每次只要新增了一个模块,Yarn 就会创建(或更新)yarn.lock 这个文件。

指令

  1. 初始化
yarn init
  1. 添加依赖包
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

yarn add [package] --dev,添加到devDependencies
yarn add [package] --peer,添加到peerDependencies
yarn add [package] --optional,添加到optionalDependencies
  1. 升级依赖包
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
  1. 移除依赖包
yarn remove [package]
  1. 安装项目的全部依赖
yarn
或
yarn install

Yarn 工作流

  1. 创建一个新项目
  2. 增加/更新/删除依赖
  3. 安装/重装依赖。Yarn会从package.json中读取依赖,并将依赖信息存储到yarn.lock中。
  4. 引入版本控制系统(例如 git)。为了别人能使用你的包,以下文件必须被提交进版本控制系统:package.jsonyarn.lock
  5. 持续集成

Yarn 指令

飞机票

关键概念

package.json 和 yarn.lock

所以依赖都在 package.json 文件里声明,包含开发依赖、运行依赖、可选依赖等。 每个依赖都需要指明依赖名称和最低可用版本。

yarn.lock 里保存了每个依赖的安装版本,这可以确保你的包每次安装的一致性。

依赖类型

  1. dependencies,这是所谓的常规依赖,确切地说,是代码运行时所需要的。
  2. devDependencies,这是开发依赖,就是那些只在开发过程中需要,而运行时不需要的依赖。
  3. peerDependencies,这是“同伴依赖”,一种特殊的依赖,意味着安装包的用户也需要和包同样的依赖。
  4. optionalDependencies,这是“可选依赖”,意味着依赖是……可选的。这种依赖即便安装失败,Yarn也会认为整个依赖安装过程是成功的。
  5. bundledDependencies,这是“捆绑依赖”,在发布包时,这个数组里的包都会被捆绑打包(Bundle)。

工作区

工作区是设置你的软件包体系结构的一种新方式,使用这种方式安装多个软件包, 就是只需要运行一次 yarn install 便可将所有依赖包全部安装。

参考

Yarn: A new package manager for JavaScript Yarn 官网 Yarn CLI npm和yarn的区别,我们该如何选择?