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
文件并添加了两个配置变量:
registry
和 noproxy
其中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
文件中删除了 proxy
和 https-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 时“操作被您的操作系统拒绝”