node.js - npm install 在 kerberos 或 bson 处挂起

标签 node.js mongoose npm

不确定这是否是因为我连接到了中国网(不是互联网,而是中国的防火墙为互联网提供了遗憾的借口),或者是因为 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 分钟。不过,它上次工作是在大约两周前。

尝试在具有 mongoose 依赖项的包上进行 npm 安装,但该依赖项永远无法实现。我的同事建议我执行 npm install 来获取所有更新的软件包(包括他们最近使用的软件包),但每次有人告诉我,我在当天剩下的时间里正在查看上述两条消息之一,有时有时第二天也是如此。

将在夜间尝试 npm install -g mongoose,并希望 npm 链接能够正常工作(而不是尝试下载并安装一些卡住几个小时的东西)。

中国还有其他人发现几乎不可能使用 npm (取决于防火墙的情绪)吗?

最佳答案

我遇到了同样的问题并查看了 builderror.log 文件。该文件位于相应的 Node 模块文件夹中。在你的情况下,它是:

/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 的状态,也许还可以发现一些权限问题或类似问题。

这就是我修复它的方法:

  1. 使用 rm ~/.node-gyp/ 删除当前安装的所有头文件
  2. 使用npm install -g node-gyp全局安装node-gyp
  3. 调用node-gyp安装头文件node-gyp install(安装当前 Node 版本的头文件)。
  4. 再次删除node-gyp npm uninstall -g node-gyp(可选)

之后,我的项目的简单 npm install 只需几秒钟就完成了。

关于node.js - npm install 在 kerberos 或 bson 处挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27600252/

相关文章:

node.js - 给定一个 URL,使用 Node 检索该页面上最大的图像

node.js - KoaJS 中的文件上传

node.js - 如何使用 Mongoose 在 mongoDB 中填充 3 个集合

mongodb - 查找字段不存在的所有文档,加上如果字段存在则应用条件

node.js - 如何防止lite-server在启动时打开浏览器窗口?

javascript - 在 ES6 + babel 中使用 bluebird promise 导入类(构造函数)

javascript - 通过 websockets 的 Node.js JSON 格式问题

node.js - 如何在 MongoDB 中通过单个查询获取计数和最大日期?

node.js - 使用 Visual Studio 2015 在防火墙后面使用 npm

node.js - Laravel 中的 npm run watch 和 npm run hot 有什么区别?