【问题标题】:NPM doesn't install any modules: network socket hangs upNPM 不安装任何模块:网络套接字挂起
【发布时间】:2013-12-22 06:26:51
【问题描述】:

Salam(意思是你好):)

我在 ubuntu 12.04 上安装了最新版本的 node.js,我没有使用任何代理,并且我的网络设置已正确配置,并且自上次 NPM 正常工作以来完好无损。但是现在 NPM 挂起任何模块的安装并出现以下错误:

nasser@nasser-desktop:~/projects/server v3$ npm install simple-proxy
npm WARN package.json docco@0.6.2 No repository field.
npm http GET https://registry.npmjs.org/simple-proxy
npm http GET https://registry.npmjs.org/simple-proxy
npm http GET https://registry.npmjs.org/simple-proxy
npm ERR! network socket hang up
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
npm ERR! System Linux 3.5.0-17-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "simple-proxy"
npm ERR! cwd /home/nasser/projects/serverV3
npm ERR! node -v v0.10.18
npm ERR! npm -v 1.3.8
npm ERR! code ECONNRESET
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/nasser/projects/serverV3/npm-debug.log
npm ERR! not ok code 0

【问题讨论】:

  • 我不确定这个答案是否适用于所有人!但它对我有用。我尝试 ping registry.npmjs.org,但没有得到任何输出,所以我更改了我的网络网关,然后我再次 ping,我得到了域“registry.npmjs.org”的确认,然后我可以安装它跨度>

标签: node.js sockets npm


【解决方案1】:

我有同样的问题。 似乎 ISP 的 https 处理存在一些问题。正在做:

npm config set registry http://registry.npmjs.org/

为我工作

【讨论】:

  • 你是个节省者。我花了几天时间来找出它发生的原因。现在我能够安装甚至凉亭。哇哇哇哇哇哇哇
  • 哇,我认为 npm 真的很糟糕,直到找到这个...
  • 2 年后,这对我有帮助!谢谢
  • 2.5 年后,这帮助我让 npm install 在全新的 bitbucket 管道测试版中工作!谢谢!
  • 今天是 2016 年 9 月 8 日...... 2 年 8 个月结束了......在我变得几乎大胆地拔掉所有头发后,它帮助了我......你真的是一个保护者......上帝保佑你@pajooh
【解决方案2】:

我遇到了同样的问题。在thread 中找到了解决方案。 您可以通过以下方式查看npm 正在使用的有效代理:

npm config get proxy
npm config get https-proxy

如果你在代理后面,试试这个:

mv ~/.npmrc ~/.npmrc.bak

【讨论】:

    【解决方案3】:

    找到 .npmrc 文件,用记事本打开。然后删除那里的代理设置

    【讨论】:

      【解决方案4】:

      我的 windows 机器也有类似的问题,我首先通过执行以下命令检查我的代理是否获得了一些值来修复它。

      npm config get proxy
      

      作为回报,我得到了以下内容:

      http://usr:pwd@host/:port
      

      因此,如果任何不在代理层下的人首先通过执行以下命令将代理设置为空。

      npm config set proxy null
      

      现在如果你执行你的 npm i 它不应该抛出任何网络错误。

      【讨论】:

        【解决方案5】:

        如果您使用具有用户名和密码身份验证的代理,请尝试将代理设置为

        npm 配置设置代理http://username:encodedpassword@proxyaddress:port

        npm 配置设置 https-proxy http://username:encodedpassword@proxyaddress:port

        【讨论】:

          【解决方案6】:

          在运行之前只需按照以下步骤操作:npm install -g @angular/cli

          1. npm cache clean(如果它抛出错误你甚至可以忽略)
          2. npm config set strict-ssl false
          3. npm config set proxy http://myusername:mypassword@proxyaddress:port
          4. npm config set https-proxy http://myusername:mypassword@proxyaddress:port

          【讨论】:

            【解决方案7】:

            将代理和 http_proxy 字段与您的凭据(如果包含任何特殊字符,则进行编码)添加到您的 .npmrc 文件并再次运行 npm install。它应该工作。

            例如:

            代理=http://username:passcode@proxyURL:80/ https_proxy=http://username:passcode@proxyURL:80

            【讨论】:

              【解决方案8】:

              我尝试了多种解决方案,但发生在我身上的大多数情况是网络/ssl 和代理问题。网络/ssl 情况很常见,有很多解决方案,但我与您分享了代理问题。

              Bash 命令:

              npm config set proxy null
              npm config set https-proxy null
              npm config set http-proxy null
              

              就我而言,我使用的是https://registry.npmjs.org/ 网址。 NULL 代理后它开始工作。 npm 将默认代理设置为http://my-proxy.com:1080/,因此我们必须更改代理 url 或将其设为空。 要在 bash 中获取默认代理,请点击以下命令。

              npm config get proxy
              

              【讨论】:

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