最近 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