不确定这是因为我是连接到中国网(不是因特网,而是防火墙的中国为互联网提供遗憾的借口),还是因为npm有问题,但我似乎无法用npm安装东西
尝试
让我来
npm info install kerberos@0.0.3
> kerberos@0.0.3 install /usr/local/lib/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)
有时它经过很长一段时间没有更新(使用--verbose选项),但随后进入
npm info postinstall mquery@0.8.0
> bson@0.2.12 install /usr/local/lib/node_modules/mongoose/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)
也许我过于急躁,不能在2小时后杀死这个过程,但它看起来像是在没有告诉我的情况下挂起,因为当它成功时整个过程不到20分钟。它上次工作的时间大约是2周前。
尝试在具有mongoose依赖性但仍无法实现依赖性的包上执行npm安装。我的同事建议我做npm install以获取所有更新的软件包(包括他们最近工作的那些),但每次有人告诉我我在剩下的一天中看到上面提到的两条消息之一有时也是第二天。
将尝试使用npm install -g mongoose过夜并希望npm链接可以正常工作(不要尝试下载并安装一些卡住了几个小时的东西)。
中国的其他任何人发现几乎不可能使用npm(取决于防火墙的情绪)?
答案 0 :(得分:4)
我遇到了同样的问题并查看了builderror.log文件。该文件位于相应的节点模块文件夹中。在你的情况下它是
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/node_modules/bson/builderror.log
或
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos/builderror.log
如果您使用-dd
启动了npm,您可以在此文件中查看gyp的状态,也可以发现某些权限问题或类似问题。
这就是我为解决这个问题而采取的措施:
rm ~/.node-gyp/
npm install -g node-gyp
node-gyp install
(安装当前节点版本的头文件)。 npm uninstall -g node-gyp
(可选)之后,我的项目的简单npm install
在几秒钟内完成。
答案 1 :(得分:1)
看起来你的编译需要花费很长时间才能安装。 (node-gyp调用C ++编译器来构建本机代码插件)
可能缺少构建本机加载项所需的部分(库,编译器)。不过,如果不问你几个问题,我无法帮你弄明白:
您是从源代码还是从软件包安装节点?
是否安装了python
和C / C ++编译器?
您是否可以使用两个npm
标志运行-d
以增加详细程度(npm -dd install kerberos
)并将生成的npm-debug.log发布到https://gist.github.com以帮助调试?