解决React Native初始化项目速度很慢的问题

1689 查看

在进行React Native时,需要执行如下命令:

react-native init AwesomeProject

但是按下Enter命令后,光标就一直在那转圈。

很明显,被墙了,国内开发者常见的问题。

在初始化的过程中,node-gyp需要进行编译,node-gyp 编译时候需要 NodeJs 源码来提供头文件,所以它会先尝试下载 NodeJs 源码,而在天朝墙外 CDN 经常抽风,有时候下载 NodeJs 源码奇慢无比,那么自然要卡很久。

所以解决方法就是,先把 NodeJs源码下载到本地,然后提取给 node-gyp。

方法是执行如下脚本:

命令:bash node-gyp.sh

node-gyp.sh的内容如下:

 # js 版本号
NODE_VERSION=`node -v | cut -d'v' -f 2`

echo ${NODE_VERSION}

# 下载源码包(使用镜像)
wget http://npm.taobao.org/mirrors/node/v$NODE_VERSION/node-v$NODE_VERSION.tar.gz

# 删除现有内容不完整的目录
rm -rf ~/.node-gyp
mkdir ~/.node-gyp

# 解压缩并重命名到正确格式
tar zxf node-v$NODE_VERSION.tar.gz -C ~/.node-gyp
mv ~/.node-gyp/node-v$NODE_VERSION ~/.node-gyp/$NODE_VERSION

# 创建一个标记文件
printf "9\n">~/.node-gyp/$NODE_VERSION/installVersion

执行该命令要首先安装了node,至于如何安装node,可自行搜索。

由于笔者是mac环境,自带的命令中没有上述脚本中的wget命令,但是可以用homebrew去安装wget

brew install wget

当然homebrew也需要去安装,可自行搜索安装。

另外,我们还要再做一个配置:替换npm镜像。

npm官方的源不稳定,我们可以使用国内淘宝的源http://registry.npm.taobao.org/

执行下面的命令即可:

npm config set registry=http://registry.npm.taobao.org/

配置这些之后,再去初始化项目,即可看到效果。笔者亲测,大概2分钟创建项目完毕。