创建 React-Native 工程时,如何指定特定的 React-Native 版本

1714 查看

作者注
React-Native 0.14 之后,可以用以下方法达到类似效果:

mkdir  [Project Name] && cd $_
npm i react-native@version --save
react-native upgrade

react-native 会用内部的 Yeoman Generator来完成文件替换的过程。其实开可以具体传参数的,参见: https://github.com/facebook/react-native/blob/master/local-cli/generator/index.js

0. 原因

创建新的 React-Native (以下简称 RN)的时候,我们一般都是用以下命令:

react-native init [Project Name]

这个命令会从 npm 安装 react-native package,然后用执行该 package 中的 cli.js 完成工程文件初始化。

这里有一点不方便的是,由于react-native 自身的版本升级非常频繁(两周发布一个版本),还往往会造成向前不兼容(毕竟还没有到1.0版本)。因此,我们经常要创建使用不同版本 react-native 的工程进行测试,尤其是对那些第三方的组件。而使用react-native init [Project Name] 是做不到这一点的。

这个需求对我来说过于频繁,于是我就干脆复制了react-native-cli的代码,加了自己的参数,提交了一个新的 package rninit

rninit 的安装和使用和react-native-cli类似。

1. 安装

npm i -g rninit

2. 使用

2.1 用最新的 react-native 版本创建工程:

rninit init [Project Name]

2.2 用特定的 react-native npm 版本创建工程:

rninit init [Project Name] --source react-native@0.14.2

2.3 从某个 Git Repo. 创建工程:

rninit init [Project Name] --source git+https://github.com/facebook/react-native.git#v0.14.2

这也方便你从自己 Clone 或 Fork 的 react-native 版本来创建工程。

2.4 “source” 参数格式

--source 参数的格式其实就是所有 npm install 支持的参数格式

2.5 “verbose” 参数

原本 react-native 支持的 --verbose 参数仍然被支持:

rninit init [Project Name] --source react-native@0.14.2 --verbose

这样你可以看到 npm 安装过程中的详细输出信息。