gpt4 book ai didi

npm 3.10.10安装socket挂起报错

转载 作者:行者123 更新时间:2023-12-04 02:13:16 24 4
gpt4 key购买 nike

我在运行 Ubuntu 16.04 和内核 4.13.0.0-36-generic 的 Dell XPS 15 上使用 Node 6.10.1 和 npm 3.10.10。我在一个通过 cntlm 配置的企业代理后面。

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

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

这是 npm 配置列表 的摘录:

; 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 配置中使用代理,而不是通过 cntlm
  • 通过命令 trickle -s -d 100 -u 100 npm install -d
  • 使用 trickle 限制我的上传/下载能力

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

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

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

感谢您的帮助。

最佳答案

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

最后用docker with 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来自容器的命令。但是要小心,然后您需要使用 chmodnode_modules 文件夹中递归,因为容器默认使用 root。

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

关于npm 3.10.10安装socket挂起报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49055140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com