在進行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分鐘創建項目完畢。