node-gyp rebuild 卡住?

最近 npm install 時候常常遇到在 node-gyp rebuild 那裏卡好久的狀況(大於十分鐘),因而研究了一下輸出的錯誤日誌解決了這個問題,在這裏分享一下。node

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

On Unix:web

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

若是檢查下來這幾項都沒問題的話,多是 NodeJs 源碼缺失的緣由。npm

這其實又是一個天朝獨有的問題,主要緣由是 node-gyp 編譯時候須要 NodeJs 源碼來提供頭文件,因此它會先嚐試下載 NodeJs 源碼,而在天朝牆外 CDN 常常抽風,有時候下載 NodeJs 源碼奇慢無比,如我這裏有時候就只有 3KB/s,那麼天然要卡好久。bash

因此解決方法就是,先使用天朝加速下載工具(好比迅雷等)把 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 的輸出日誌來肯定下載哪個文件。post

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

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=usgoogle

相關文章
相關標籤/搜索