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

相关文章
相关标签/搜索