【问题标题】:npm 3.10.10 install socket hang up errornpm 3.10.10 安装套接字挂起错误
【发布时间】:2018-06-29 23:22:27
【问题描述】:

我在运行带有内核 4.13.0.0-36-generic 的 Ubuntu 16.04 的戴尔 XPS 15 上使用节点 6.10.1 和 npm 3.10.10。 我在通过 cntlm 配置的公司代理后面。

当我在一个项目上运行npm install -d 时,它会在很短的时间内工作,一段时间后我会得到Error: socket hang up

我发现了很多关于我的问题的问题,但似乎没有任何解决方案有效。

这是npm config list 的摘录:

; cli configs
user-agent = "npm/3.10.10 node/v6.10.1 linux x64"

; userconfig /home/msb/.npmrc
https-proxy = "http://localhost:3128/"
registry = "http://urlTocorporateRegistryWhichWorksOnOtherComputers"
strict-ssl = false

; node bin location = /home/msb/.nvm/versions/node/v6.10.1/bin/node
; cwd = /home/msb
; HOME = /home/msb
; "npm config ls -l" to show all defaults.

不能更改注册表,因为我们正在使用一些内部模块,并且我必须保留 node/npm 的当前版本。

我已经试过了:

  • 直接在 npm config 中使用代理而不是通过 cntlm
  • 通过命令trickle -s -d 100 -u 100 npm install -d 使用trickle 限制我的上传/下载功能

另一个迹象:它适用于 Windows,我有一位同事在较慢的电脑上运行 Ubuntu 17.04,它适用于他。我们认为我的机器在请求注册表时可能有点太野蛮了。有谁知道减缓 npm 请求的方法吗?

它曾经通过 yarn 工作,但一些新的发展迫使我回到 npm。

有没有人遇到并纠正过这个问题?

感谢您的帮助。

【问题讨论】:

    标签: npm node-modules


    【解决方案1】:

    我在 Ubuntu 18.04 上尝试了同样的问题,没有明显的原因。

    我终于用 docker 和 bind mounts 解决了。步骤如下:

    • 创建一个包含以下元素的dockerfile(如果你不需要像我这样配置代理,你也可以直接使用使用的镜像运行)

      FROM node:6.10.1
      
      ENV HTTPS_PROXY "http://yourproxy:yourport/"
      
      # Different RUN commands to configure npm and git corporate proxy
      
      WORKDIR /home/root/
      
    • 构建镜像(来自 dockerfile 的文件夹):docker image build -f npm-installer/Dockerfile -t custom-npm-installer .

    • 进入您通常运行的项目文件夹npm install
    • 运行以下命令以交互方式运行容器:docker container run -it --network host -v </host/path/to/pj>:/home/root/pj-to-install --name custom-npm-installer custom-npm-installer bash

    您现在可以从容器中运行npm install 命令。但是要小心,您需要在 node_modules 文件夹上递归使用 chmod,因为容器默认使用 root。

    另一件事,如果您使用的是 node-sass,它大部分时间都是在安装 npm 时即时编译的,并且与您的操作系统当前版本/架构相匹配。因此,如果您的 linux 发行版与容器的发行版不完全相同,您可能需要在容器上运行 npm install 后在主机上重新编译 node-sass。不过不用担心,node-sass 会在您启动应用程序的那一刻为您提供运行命令。

    【讨论】:

      猜你喜欢
      • 2018-11-01
      • 2013-12-22
      • 2020-01-11
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 2018-02-28
      • 1970-01-01
      相关资源
      最近更新 更多