美文网首页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