【问题标题】:npm not working - "read ECONNRESET"npm 不工作 - “读取 ECONNRESET”
【发布时间】:2013-08-27 11:14:02
【问题描述】:

我在使用 npm 时遇到问题,我无法安装任何东西。以下是错误消息:

C:\Windows\system32>npm install -g yo
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/yo
npm ERR! network read ECONNRESET
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 settin
gs.
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 Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "yo"
npm ERR! cwd C:\Windows\system32
npm ERR! node -v v0.10.17
npm ERR! npm -v 1.3.8
npm ERR! syscall read
npm ERR! code ECONNRESET
npm ERR! errno ECONNRESET
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Windows\system32\npm-debug.log
npm ERR! not ok code 0

知道这是为什么吗?这是我的网络设置,似乎我没有配置任何代理。我还禁用了所有防火墙。

【问题讨论】:

  • 你能在浏览器registry.npmjs.org/yo访问这个页面吗?
  • 他们的 SSL 证书似乎已过期!
  • @thefourtheye 是的,我可以访问该链接
  • npm 不安装任何东西。这个问题不是安装 express 独有的
  • 您可能需要检查 C:\Windows\system32\npm-debug.log,该文件将有更准确的信息来解决您的问题。

标签: node.js npm


【解决方案1】:

使用以下代码为我解决了问题: npm install -g 纱线

yarn 全局添加 create-react-app

【讨论】:

    【解决方案2】:

    我为此找到了一个简单的解决方案。如果您使用的是 Windows 10,请转到网络设置并关闭自动代理检测。它解决了我的问题。过去 2 天我一直在寻找这个。

    【讨论】:

      【解决方案3】:

      删除yarn.lockpackage-lock.jsonnode_modules

      然后

      npm install -f 
      

      为我工作

      【讨论】:

        【解决方案4】:

        解决方案 1:

        MAC + LINUX

        使用sudo 运行此命令

        sudo npm install -g yo
        

        窗口

        administrator 运行cmd,然后再次运行此命令

        解决方案 2:

        运行此命令,然后尝试

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

        【讨论】:

          【解决方案5】:

          如果这对遇到我的情况有帮助:我最近安装了 Fiddler,它(我不知道)通过 127.0.0.1:8866 添加了一个网络代理。我进入我的 Ubuntu 网络设置,点击“网络代理”设置,然后禁用它,然后一切恢复正常。

          因此,一般来说,请检查以确保您没有设置网络代理,因为您正在执行其他操作的副作用。

          【讨论】:

            【解决方案6】:

            重新启动我的电脑使其正常工作。

            【讨论】:

              【解决方案7】:

              如果您使用的是 Windows,您应该跟进高级系统设置以检查那里声明的环境变量,您应该注意到代理配置可能位于环境变量中,如下图所示:

              因此,如果您的代理服务器不可用或阻止来自 npm 的流量,您可能会注意到本主题中的上述错误。也许你根本不需要任何代理,在这种情况下,只需删除这个 HTTP_PROXY 环境变量。

              我在我的 Windows 和 npm 设置中关闭了所有代理配置,但是,npm 在下载资源时仍然出现超时和连接错误,然后我发现 env 变量上仍然存在代理配置,这导致了所有麻烦。

              【讨论】:

                【解决方案8】:

                以防万一……再试一次对我有用。 可能只是暂时的连接问题。

                【讨论】:

                  【解决方案9】:

                  我发现“npm config edit”对于更新 https-proxy、proxy、registry 的条目更有用

                  我做了这样的事情

                  • npm 配置列表
                  • npm 配置编辑(在 vi 中打开)
                  • 编辑或设置 https-proxy、proxy、registry 的配置条目
                  • npm 安装

                  【讨论】:

                    【解决方案10】:

                    npm config set https-proxy "http://username:password@proxy-url:proxy-port" 为我工作

                    【讨论】:

                      【解决方案11】:

                      我们公司的防火墙将停止安装节点,因此连接到个人网络并安装,它对我有用。

                      【讨论】:

                        【解决方案12】:

                        我已经尝试了几乎所有在此处和其他页面中发布的方法,但没有奏效。以下是我按顺序执行的命令,我鼓励您尝试一下,因为它适用于很多人(但不是我):

                        • npm config rm proxy
                        • npm config rm https-proxy
                        • npm config set https-proxy https://username:password@proxy.company.com:6050
                        • npm config set proxy http://username:password@proxy.company.com:6050
                        • npm config set registry http://registry.npmjs.org/

                        然后尝试安装包npm install -g express,但失败了。

                        但是,当我尝试运行 npm install npm@latest -g 时,它奇迹般地执行并安装得很好!
                        然后再次运行 npm install -g express 也可以正常工作。

                        TL;DR:将 npm 更新到最新版本解决了该问题(当前为 6.0.1)

                        【讨论】:

                          【解决方案13】:

                          这对我有用:

                          proxy = http://1.1.1.1:3128/
                          https_proxy = http://1.1.1.1:3128/
                          strict-ssl = false
                          ca = null
                          registry = http://registry.npmjs.org/
                          

                          在这里找到答案:https://fak3r.com/2015/07/31/howto-use-npm-behind-a-corporate-proxy/

                          【讨论】:

                            【解决方案14】:

                            从 npm 安装任何软件包时,我在 windows 中遇到了同样的问题。用 - 修复了这个问题 ** 以管理员身份打开命令提示符并运行这 3 个命令 **/

                            1. npm config rm 代理

                            2. npm config rm https-proxy

                            3. npm install npm@latest -g

                            MAC / LINUX
                            1. sudo npm config rm proxy

                            2. sudo npm config rm https-proxy

                            3. sudo npm install npm@latest -g

                            基本上这是带有 npm 的版本。请检查它的工作原理

                            【讨论】:

                              【解决方案15】:

                              npm config rm proxy

                              npm config rm https-proxy

                              为我工作!

                              【讨论】:

                                【解决方案16】:

                                我遇到了同样的问题,但这些解决方案都没有正常工作。最后,我通过与 npm 兼容的 yarn 安装了软件包。根据官网:

                                对于大多数用户来说,从 npm 迁移应该是一个相当简单的过程。 Yarn 可以使用和 npm 一样的 package.json 格式,并且可以安装 来自 npm 注册表的任何包。

                                只需安装yarn,然后使用以下命令运行安装,相当于yarn中的npm install

                                yarn install
                                

                                更多信息请访问—Yarn: Migrating from npm

                                【讨论】:

                                  【解决方案17】:

                                  让 npm 在代理网络中正常工作的三件事。

                                  这个设置 npm 注册表,默认可能需要 https。

                                  npm 配置设置注册表“http://registry.npmjs.org/

                                  其次是您系统中的两组代理。如果您的组织使用代理或您。

                                  npm 配置设置代理“http://username:password@proxy-url:proxy-port

                                  npm 配置设置 https-proxy "http://username:password@proxy-url:proxy-port"

                                  您还可以通过

                                  检查它们是否已设置

                                  npm 配置获取 https-proxy

                                  适用于所有值。

                                  【讨论】:

                                  • 它没有显示任何错误,但安装卡在了线上 - loadRequestedDeps: sill install loadAllDepsIntoIdealTree
                                  • 这是另一个问题。你的代理问题解决了。愿这缩短你的时间stackoverflow.com/questions/40874237/…
                                  【解决方案18】:

                                  我在 Oracle VirtualBox 中模拟的系统上尝试运行 npm 时遇到了同样的问题。我通过在网络适配器属性中添加 Google DNS 地址来解决它。

                                  网络适配器属性 > IPv4 属性 > 首选 DNS 地址:8.8.8.8

                                  【讨论】:

                                    【解决方案19】:

                                    我在没有代理的本地家庭网络上遇到了同样的问题。该线程中的其他答案对我不起作用。我最终做的是使用yarn,它可以与npm互换使用:

                                    yarn add
                                    

                                    直到今天我都不知道为什么我的 npm 仍然无法工作。我确定这是我的 Wi-Fi 的问题,因为当我连接到从我的智能手机广播的 LTE 互联网时npm install 再次工作。它可能与路由器设置有关(当我升级我的互联网速度并且 ISP 工作人员用新路由器替换了我的旧路由器时问题开始了)。

                                    【讨论】:

                                      【解决方案20】:

                                      我遇到了 npm 抛出此错误的问题。

                                      所以基本上每当出现错误时,我要么使用手动安装
                                      从 git 或等待并安装指定版本,如:

                                      npm install resolve@^1.1.6
                                      

                                      单独跑步时:

                                      npm install resolve
                                      

                                      没用。

                                      我将 node.js 从 7 更新到 8,npm install 顺利进行。

                                      我认为可能是版本 7 导致了这个问题,因为 @luschn 降级到 6 所以他也没有使用 7。

                                      也许注册表本身正在返回错误而在其状态页面上没有显示问题,因为一段时间后我可以安装这个破坏包,然后继续使用npm install 安装其余的。

                                      【讨论】:

                                        【解决方案21】:

                                        我不想为注册表切换到 http,对我有用的是从最新的 Node 版本降级到 LTS 版本(截至目前,6.x)。

                                        【讨论】:

                                          【解决方案22】:

                                          如果您保存的不记名令牌现在无效,您也可能会遇到此错误。我在使用私人仓库时遇到过这种情况,其中帐户被擦除和重置,使令牌无效。尽管您的 repo 可能不需要身份验证,但如果您有以前登录的令牌,它将被传递,如果它无效,您的连接将被关闭。

                                          您可以通过使用新的用户名和密码再次登录或通过 npm 退出来解决此问题。

                                          【讨论】:

                                            【解决方案23】:

                                            这是一个老问题,但无论如何。

                                            我在尝试部署到 heroku 时遇到了这个问题,对我有用的修复是更新使用的 npm 版本。我有版本 2.x.x,我更新到 3.x.x

                                            【讨论】:

                                              【解决方案24】:

                                              在家中删除您的代理设置并在 Office 网络上打开,这可能很烦人,但它对我有用:

                                              npm config set proxy http://xxx.xxx.xxx.4:8080   
                                              npm config set https-proxy http://xxx.xxx.xxx.4:8080
                                              

                                              npm config rm proxy   
                                              npm config rm https-proxy
                                              

                                              【讨论】:

                                              • 最后一点对我有用 - 我检查了我的 .npmrc 文件,删除代理后旧的 https 代理仍然存在
                                              • 这是有效的,但是如何在没有代理的情况下取消配置或重新配置为默认值??
                                              【解决方案25】:

                                              您可能需要检查您的 NPM 代理设置并可能将其删除。

                                              npm config get proxy
                                              npm config rm proxy
                                              npm config rm https-proxy
                                              

                                              人们可能认为全新安装的 NodeJS+NPM 不会配置代理。奇怪的是,我的确实定义了一个代理,指向一个 IP 和端口 3128。删除代理就可以了。

                                              【讨论】:

                                              • 我正在尝试使用 cmd - npm install jquery 在 Angular 项目中安装 jquery 但尝试此解决方案时出现了代理错误。
                                              • 一天后,我解决了我的问题npm ERR!网络 在大多数情况下,您在使用此解决方案时使用代理或网络设置不佳。谢谢
                                              • 这确实有效,而且似乎比其他解决方案更安全。
                                              【解决方案26】:

                                              这可能是由于使用 sudo 使用 npm 安装任何东西造成的——这会导致缓存中的文件归 root 所有,从而导致此问题。您可以通过运行来修复它:

                                              sudo rm -rf ~/.npm

                                              删除缓存。然后再次尝试你正在做的任何事情,确保你永远不要将sudonpm 一起使用(否则问题可能会再次出现)。

                                              更多信息:npm throws error without sudo

                                              【讨论】:

                                              • 忘记了需要提升到管理员才能执行npm -g update(就像我安装它一样)。谢谢。
                                              • 这究竟是如何导致ECONNRESET 的?你说得对,sudo 可以以新颖的方式破坏事物,但导致注册服务器断开连接有点令人难以置信。
                                              【解决方案27】:

                                              在工作中,我不得不加载我的浏览器并浏览一个网页(它通过我们的网络过滤器验证了我的身份)。然后我重试了命令,它成功了。

                                              【讨论】:

                                              • 不是 100% 确定这是否对我有帮助,或者只是巧合,但在 Firefox 中导航到 registry.npmjs.org 不知何故有助于下次 npm install 工作。我没有任何类型的网络过滤软件。
                                              【解决方案28】:

                                              您可能还需要指定代理服务器/端口,在某些环境中,代理的系统设置不足以让 npm 工作。

                                                  npm config set proxy "http://your-proxy.com:80"
                                              

                                              【讨论】:

                                                【解决方案29】:

                                                使用

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

                                                以便 npm 请求 http url 而不是 https

                                                然后尝试相同的npm install 命令

                                                【讨论】:

                                                • 能否请您也提供一些解释,这将非常有帮助。
                                                • 这个“修复”容易受到中间人攻击。我不会将其用于生产。
                                                • 问题很可能是您的 ISP 或公司的防火墙/代理阻止了您访问该网站。使用上述方法更快更容易,但它也不安全,因为它不能验证您是否连接到正确的网站。要检查您是否被阻止,只需在浏览器中转到registry.npmjs.org。你应该得到一些文本。
                                                • 哈哈....几个月来,我一直在努力克服这个问题。我一直在禁用 VPN,抓取包,然后重新登录。谢谢你。所有其他人,问题只是您的代理地址/端口错误,或者(在这种情况下)您的代理未配置为侦听 HTTPS 流量。
                                                • 我知道它可能不安全,但来吧 - 我在通过 Angular CLI 创建新的 Angular 4 应用程序时尝试了一切以消除 ECONNRESET 错误,并且该解决方案仅有效。创建新项目后,您可以切换回 https。无论如何@mithunsatheesh 再次感谢你。
                                                猜你喜欢
                                                • 2017-12-21
                                                • 1970-01-01
                                                • 2015-09-16
                                                • 2018-09-11
                                                • 2017-09-03
                                                • 1970-01-01
                                                • 2023-03-09
                                                • 2022-01-02
                                                • 1970-01-01
                                                相关资源
                                                最近更新 更多