美文网首页iOS小筑RN一起学起来
解决React Native初始化项目速度很慢的问题

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

作者: 镜花水月一梦不觉 | 来源:发表于2015-11-23 16:14 被阅读12929次

在进行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分钟创建项目完毕。

相关文章

网友评论

  • 机智的萌萌哒:您好,那个node-gyp.sh文件要放在哪儿,我随便创建在桌面可以吗?还是要丢到指定文件夹去?
    镜花水月一梦不觉:随便放在哪儿都行,这是全局的配置啊
  • a831ae168a02:bash: node-gyp.sh No such file or directory
    镜花水月一梦不觉:你要自己 新建这个文件 , 然后把文中提到的内容 写入这个文件,然后再执行这个
  • FaiChou:哦 我以为 wegt 装上了呢。结果
    Error: A newer Command Line Tools release is available.
    Update them from Software Update in the App Store.
  • FaiChou:6.2.2
    node-gyp.sh: line 7: wget: command not found
    tar: Error opening archive: Failed to open 'node-v6.2.2.tar.gz'
    mv: rename /Users/FaiChou/.node-gyp/node-v6.2.2 to /Users/FaiChou/.node-gyp/6.2.2: No such file or directory
    node-gyp.sh: line 18: /Users/FaiChou/.node-gyp/6.2.2/installVersion: No such file or directory
    镜花水月一梦不觉:@FaiChou 文中提到了wget需要自己安装
  • jamin_it:win7系统
  • jamin_it:命令行输入bash node-gyp.sh 回车,提示:'bash' 不是内部或外部命令,也不是可运行的程序或批处理文件。这个需要另外安装什么吗?已经安装了node.js
    镜花水月一梦不觉:@弘文馆校理 window 系统不行啊,window下要执行shell脚本需要安装cygwin,模拟一个unix环境,window下的cmd默认是执行bat脚本的,不能执行shell脚本,即.sh脚本

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

本文链接:https://www.haomeiwen.com/subject/mjsrhttx.html