node-gyp rebuild 卡住?


最近 npm install 時候經常遇到在 node-gyp rebuild 那里卡很久的情況(大於十分鍾),於是研究了一下輸出的錯誤日志解決了這個問題,在這里分享一下。

首先,請檢查 node-gyp 需要的 Python 和編譯工具鏈是否已安裝:

On Unix:

  • python (v2.7 recommended, v3.x.x is not supported)
  • make
  • A proper C/C++ compiler toolchain, like GCC

如果檢查下來這幾項都沒問題的話,可能是 NodeJs 源碼缺失的原因。

這其實又是一個天朝獨有的問題,主要原因是 node-gyp 編譯時候需要 NodeJs 源碼來提供頭文件,所以它會先嘗試下載 NodeJs 源碼,而在天朝牆外 CDN 經常抽風,有時候下載 NodeJs 源碼奇慢無比,如我這里有時候就只有 3KB/s,那么自然要卡很久。

所以解決方法就是,先使用天朝加速下載工具(比如迅雷等)把 NodeJs 的源碼 下載到本地,然后提取給 node-gyp:

# wget http://nodejs.org/dist/v0.10.33/node-v0.10.33.tar.gz
# 假設源碼已經下載好了.
tar zxf node-v0.10.33.tar.gz -C ~/.node-gyp
mv ~/.node-gyp/node-v0.10.33 ~/.node-gyp/0.10.33
printf "9\n">~/.node-gyp/0.10.33/installVersion

注意,不同操作系統下和編譯不同的 package 時候 node-gyp 需要的源碼版本有可能是不一樣的,installVersion 也有可能不一樣。推薦先檢查一下 node-gyp 的輸出日志來確定下載哪一個文件。

另外還可以使用 npm install --loglevel verbose 查看安裝時候的詳細日志,來確定需要下載的 Nodejs 源碼地址。

bolg 源地址:http://webcache.googleusercontent.com/search?q=cache:MnWpLpHn0kAJ:https://breeswish.org/blog/2014/11/14/node-gyp-rebuild-freeze/+&cd=1&hl=zh-CN&ct=clnk&gl=us


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM