RN: Yarn

React Native 正式版已经更新到 0.41.1 了.

最近使用 react-native-cli 来创建 React Native 工程, 提示如下信息:

1
2
3
This will walk you through creating a new React Native project in /Users/mark/workspace/mzProjs/ReactNative/LatestRN
Installing react-native...
Consider installing yarn to make this faster: https://yarnpkg.com

其实 Yarn 也一直在更新, 最新版本 v0.20.0.

官网对应的有中文版本和中文文档, 可以 点此进入.

Yarn 简介

一句话介绍:

A new package manager for JavaScript

Yarn 是一个依赖管理工具,它能够管理你的代码,并与全世界的开发者分享你的代码.

Yarn 是高效、安全和可靠.

1.高效: 使用了缓存, 可以很快的获取已经 download 的包.
2.安全: 在代码被执行之前,会使用CheckSum算法验证每一个依赖包的完整性.
3.可靠: 在不同平台(windows/mac/linux)只要是同一份配置文件, 执行结果是一样的.

还有很多特性:

1
2
3
4
5
6
7
8
9
10
11
12
Offline Mode
If you've installed a package before, you can install it again without any internet connection.
Deterministic
The same dependencies will be installed the same exact way across every machine regardless of install order.
Network Performance
Yarn efficiently queues up requests and avoids request waterfalls in order to maximize network utilization.
Same Packages
Install any package from npm and keep your package workflow the same.
Network Resilience
A single request failing won't cause an install to fail. Requests are retried upon failure.
Flat Mode
Resolve mismatching versions of dependencies to a single version to avoid creating duplicates.

Yarn 能够让你使用其他开发者开发的代码,让你更容易的开发软件.

代码是通过依赖包 (有时也被称为组件). 在每一个依赖中会定义一个 package.json 文件,用来描述这个依赖包中所有要被分享的代码.

Yarn 是开源的, 点击 Github 了解更多.

对比 npm 和 yarn, 可以阅读文章:
Yarn vs npm: Everything You Need to Know

中文版:
译 Yarn vs npm: 你需要知道的一切

安装 Yarn

具体安装的教程, 可以参考官网的 安装教程.

在 MacOS 上面使用 Homebrew 安装很方便, 两个命令即可完成.

下面具体说说操作步骤.

强烈开发同事购买一个 VPN, 这个年头没有 VPN, 日子不好过.

1.更新 brew

1
brew update --verbose

最后加上参数 --verbose, 不然等待的过程很煎熬, 没有任何提示信息.

2.安装 yarn

1
brew install yarn

在安装过程中, 如果提示如下信息:

1
2
3
4
5
Please note by default only English locale support is provided. If you need
full locale support you should either rebuild with full icu:
`brew reinstall node --with-full-icu`
or add full icu data at runtime following:
https://github.com/nodejs/node/wiki/Intl#using-and-customizing-the-small-icu-build

可以重新安装已经安装的 node, 执行命令:

1
brew reinstall node --with-full-icu

在执行上面安装命令的时候, 如果卡住不动或者很久, Ctrl+C 终止当前的操作, 重新操作一遍即可.

安装成功后, 可以查看安装的版本信息, 执行

1
yarn --verbose

会显示如下信息:

1
2
3
4
5
yarn install v0.20.0
verbose Performing "GET" request to "https://yarnpkg.com/latest-version".
[1/4] 🔍 Resolving packages...
success Already up-to-date.
✨ Done in 0.29s.

使用 brew 安装 Yarn 后, 不需要设置环境变量.

Yarn 与 React Native

React Native 0.37 版本中已经加入了对 Yarn 的支持.

可以在 React Native 的官方的这篇 Blog 找到更多信息.

用 Yarn 创建 React Native 工程

既然 RN 已经支持了 Yarn, 那么就可以使用 Yarn 来管理和创建 RN 工程了.

使用 Yarn, 必须满足几个条件:

1.react-native-cli 的版本不能小于 1.2.0 版本.
2.React Natvie 必须是 0.37 及以上的版本.

1
react-native init MZLatestRN

当你安装好 Yarn 后, 执行上面的命令可以出现提示信息:

1
2
3
This will walk you through creating a new React Native project in ~/workspace/Projs/ReactNative/MZLatestRN
Using yarn v0.20.0
Installing react-native...

可以看出, RN 会使用 Yarn 来创建工程.

其中, ~/workspace/Projs/ReactNative 是我本地的工作目录. MZLatestRN 是要创建的 RN 工程名称.

如果你的网络好的话, 大概1分钟就可以创建成功.

工程目录:
1

可以看出多了 yarn.lock 文件.

Yarn 还在茁壮成长, 希望它越来越好, 更多的使用和工作原理可以参考 官方 Doc, 介绍的很详细.

坚持原创技术分享!