【问题标题】:npm ERR! Error: connect ECONNREFUSED when trying to update the npmnpm 错误!错误:尝试更新 npm 时连接 ECONNREFUSED
【发布时间】:2017-07-11 07:34:06
【问题描述】:

我正在尝试使用以下命令更新 npm(节点包管理器):

npm install npm@latest -g

但我在命令提示符中收到以下错误:

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\
node_modules\\npm\\bin\\npm-cli.js" "install" "npm@latest" "-g"

npm ERR! node v6.9.5
npm ERR! npm  v3.10.10
npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! syscall connect

npm ERR! Error: connect ECONNREFUSED xxx.xxx.xx.xxx:xxx
npm ERR!     at Object.exports._errnoException (util.js:1022:11)
npm ERR! If you are behind a proxy, please make sure that the
npm ERR! 'proxy' config is set properly.  See: 'npm help config'

有人知道这到底是什么意思吗?
任何帮助将不胜感激。

【问题讨论】:

  • 你坐在代理后面吗?

标签: node.js npm npm-install


【解决方案1】:

我们最近遇到了类似的问题,我们的要求是对一个功能使用公共 npm 注册表,对另一个功能使用私有注册表。因此,对于私有注册表,npm 需要通过代理,但对于公共注册表,我们不需要代理,因此我们在项目中创建了 .npmrc 文件并添加了两个配置变量:

registrynoproxy 其中noproxy 指向注册表的公共域。这将确保从您的全局 npmrc 文件中跳过代理配置。

【讨论】:

    【解决方案2】:

    我们碰巧遇到此错误消息,因为在我们的设置中,Maven Nexus NPM 存储库在同一台机器上运行,因此我们首先使用 http://localhost/xyz/ 作为 NPM 存储库 URL。

    无论出于何种原因,localhost 被视为系统类型的 NPM 注册表,导致错误。

    将 NPM 存储库 URL 配置更改为计算机的主机名,例如http://mycomputer.company.intra/xyz/ 解决了这个问题。

    【讨论】:

      【解决方案3】:

      这里的问题是因为代理。所以你需要运行下面提到的命令来删除代理,然后从http://registry.npmjs.org/设置注册表。

          npm config set proxy null
          npm config set https-proxy null
          npm config set registry http://registry.npmjs.org/
      

      然后您可以使用以下命令创建您的第一个 React 应用:

          npx create-react-app your-app-name
      

      【讨论】:

        【解决方案4】:

        我的cra 也有同样的问题,我所要做的就是注释掉我的.npmrc,清理缓存,然后运行命令npx create-react-app

        【讨论】:

          【解决方案5】:

          这可能会帮助有需要的人。在浪费了 2 个小时之后,我转向了这个解决方案,因为我在工作笔记本电脑上的公司代理服务器没有得到解决..!

          我从 .npmrc 文件中删除了 proxyhttps-proxy 并仅设置

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

          然后,我就可以成功运行npm install -g create-react-app

          .npmrc 文件可以在这里找到 C:\Users\<userName>\.npmrc

          干杯! 愉快的隔离发展 :p

          【讨论】:

            【解决方案6】:

            试试:

            npm config set proxy null
            npm config set https-proxy null
            npm config set registry http://registry.npmjs.org/
            

            如果有的话,前两行将删除代理。

            第三行将使npm从官方包注册处下载。

            【讨论】:

            • 请加一点解释。此答案已被标记为太短。
            【解决方案7】:

            我在代理服务器后面使用 Node JS 时遇到了类似的错误。这是我必须做的修复它:

            npm config set proxy http://jdoe:password123@proxy.company.com:8080
            npm config set https-proxy http://jdoe:password123@proxy.company.com:8080
            

            只需将“jdoe”和“password123”替换为您自己的凭据即可访问代理服务器。 @ 之后的所有内容都是服务器域名,或者您也可以输入确切的 IP 地址。就我而言,这两个地址都是 HTTP(不是 HTTPS)。

            要确认更改,您可以键入:

            npm config list
            

            您的设置应该会列出来。

            您也可以从浏览器获取代理设置(地址)。

            【讨论】:

              【解决方案8】:

              我一直在尝试解决这个问题

              npm config set registry http://registry.npmjs.org/
              npm config set proxy http://myproxyblabla:myport
              npm config set https-proxy http://myproxyblabla:myport
              

              但这没有帮助。 对我有用的唯一一种解决方案是向主机文件添加附加字段 (C:\Windows\System32\drivers\etc\hosts)

              151.101.36.162 registry.npmjs.com
              151.101.36.162 registry.npmjs.org
              

              这允许 npm 将地址解析为将从中下载所需文件的服务器。 您可以在 npm 存储库上熟悉 closed issue,此解决方案已获得 npm 贡献者的批准。

              【讨论】:

                【解决方案9】:

                如果您使用代理,请确保 npm ERR! “代理”配置设置正确。请参阅:'npm 帮助配置'

                见:

                更多信息:

                【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2017-04-26
                • 2014-08-15
                • 2022-01-16
                • 2015-07-09
                • 1970-01-01
                • 2015-07-01
                • 2017-09-07
                • 2022-07-16
                相关资源
                最近更新 更多