npm 错误!错误:尝试更新 npm 时连接 ECONNREFUSED

Posted

技术标签:

【中文标题】npm 错误!错误:尝试更新 npm 时连接 ECONNREFUSED【英文标题】:npm ERR! Error: connect ECONNREFUSED when trying to update the npm 【发布时间】: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'

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

【问题讨论】:

你坐在代理后面吗? 【参考方案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 帮助配置'

见:

https://docs.npmjs.com/cli/config

更多信息:

How to setup Node.js and Npm behind a corporate web proxy

【讨论】:

这确实有效。我运行了这两个命令,之后我可以安装软件包。 npm config 设置代理 proxy.company.com:8080 npm config 设置 https-proxy proxy.company.com:8080 npm help config 什么都不做

以上是关于npm 错误!错误:尝试更新 npm 时连接 ECONNREFUSED的主要内容,如果未能解决你的问题,请参考以下文章

错误:尝试更新 expo-cli 时“操作被您的操作系统拒绝”

使用 npm 命令时找不到模块“npmlog”错误消息

ENOLOCK npm 错误!运行 npm audit fix 时出错

无法更新 npm?

无法更新 npm?

在 npm install 上出现错误,因为 npm ERR cb() 从未调用过