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

node-gyp rebuild 卡住?的更多相关文章

  1. 解决 node-gyp rebuild 卡住 的问题

    node-gyp在编译前会首先尝试下载node的headers文件,像这样: gyp http GET https://nodejs.org/download/release/v6.8.1/node- ...

  2. node gyp的问题

    解决 binding.gyp not found (xxx/xxx/xxx) while trying to load binding.gyp 问题 在使用ccap图形验证码模块时遇到这个问题 Err ...

  3. Node: Updating npm's bundled node gyp

    Linux, Mac OS X, Solaris, etc. Unix is easy. Just run the following command. Use sudo if necessary. ...

  4. node gyp编译所需要的环境

    安装ms的build工具包,自带python npm install --global --production windows-build-tools

  5. Centos6.4编译安装Node.js(已验证)

    1.准备源文件包 [felix@MyTerminal Downloads]$ mv node-6.5.0 node [felix@MyTerminal Downloads]$ ls node node ...

  6. CentOS上安装Node.js

    CentOS上安装Node.js [日期:2014-07-21] 来源:Linux社区  作者:maskdfe [字体:大 中 小]     CentOS上安装Node.js(想在Linux上学习No ...

  7. node c/c++扩展模块build失败.

    "深入浅出nodejs 朴灵" 例子 c/c++扩展模块 http://diveintonode.org/ 在作者的帮助下,build成功. 下面贴出的hello.cc和bindi ...

  8. $ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略

    博主之前写过一篇文章<html5与EmguCV前后端实现——人脸识别篇>,叙述的是opencv和C#的故事.最近在公司服务器上更新了一套nodejs环境,早就听闻npm上有opencv模块 ...

  9. 在 Windows系统中编译node.js 源代码

    Node.js 在 Windows 下只能通过 Microsoft Visual Studio 编译,因此你需要首先安装 Visual Studio 或者免费的 Visual Studio Expre ...

随机推荐

  1. jQuery的deferred对象使用详解——实现ajax线性请求数据

    最近遇到一个ajax请求数据的问题 ,就是想要请求3个不同的接口,然后请求完毕后对数据进行操作,主要问题就是不知道这3个请求誰先返回来,或者是在进行操作的时候不能保证数据都已经回来,首先想到能完成的就 ...

  2. echo二次开发 ecshop 函数列表

    lib_time.php (时间函数) gmtime() P: 获得当前格林威治时间的时间戳 /$0 server_timezone() P: 获得服务器的时区 /$0 local_mktime($h ...

  3. java jquery 函数多參数传递

    业务需求: 名次   伙伴 业绩 签单 面谈 每日目标 1 文彬 5100 6 10 查看目标 2 马红月 4550 4 6 查看目标 3 王刚 4100 3 9 查看目标 4 郭亚凯 3450 4 ...

  4. CenOS http 安装与运行

    1.yum安装http [root@localhost ~]# yum install httpd -y 2.启动http服务 [root@localhost ~]# systemctl start  ...

  5. HDU1300 Pearls

    +)*= +)*= .总共需要的花费是150+=++)*= .在两组数据看来.珍珠都买了高品质的了,而且花费也少了!问题是怎么样能花费最少买珍珠! Add:合并肯定是相邻的合并.比如啊a<b&l ...

  6. jdk8 JAVA_OPTS

    JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -Djava. ...

  7. IE 11 flex布局兼容性问题 ---- 不支持min-height 和flex:1

    由于最近项目要嵌入其它平台,所以要做IE11 的兼容,那就用IE11打开网页看一看,一看吓一跳,页脚直接到了页眉的下面,并把主要内容覆盖了,也就是stick footer 布局失效了,我写了一个简易的 ...

  8. Normal Equation

    一.Normal Equation 我们知道梯度下降在求解最优参数\(\theta\)过程中需要合适的\(\alpha\),并且需要进行多次迭代,那么有没有经过简单的数学计算就得到参数\(\theta ...

  9. 【Entity Framework】Revert the database to specified migration.

    本文涉及的相关问题,如果你的问题或需求有与下面所述相似之处,请阅读本文 [Entity Framework] Revert the database to specified migration. [ ...

  10. NLP常用术语解析

    分词(Segment):中英文都存在分词的问题,不过相对来说,英文单词与单词之间本来就有空格进行分割,所以处理起来相对方便.但是中文书写是没有分隔符的,所以分词的问题就比较突出.分词常用的手段可以是基 ...