npm不工作 - “阅读ECONNRESET”

时间:2013-08-24 13:34:04

标签: node.js npm

我遇到了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

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

enter image description here

29 个答案:

答案 0 :(得分:304)

使用

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

以便npm请求http url而不是https

然后尝试相同的npm install命令

答案 1 :(得分:29)

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

    upper_area = False
    out_str = ""
    for char in inp:
        if char == '>':
            upper_area = False
        elif char == '<':
            upper_area = True
        elif upper_area:
            char = char.upper()
        out_str += char

有人可能期望全新安装的NodeJS + NPM不会配置代理。奇怪的是,我的确定了一个代理定义,指向一个IP和端口3128.删除代理就行了。

答案 2 :(得分:14)

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

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

答案 3 :(得分:10)

在家中删除您的代理设置并在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

答案 4 :(得分:8)

这可以通过使用sudo使用npm安装任何内容引起 - 这会导致缓存中的文件由root拥有,从而导致此问题。你可以通过运行来解决它:

sudo rm -rf ~/.npm

删除缓存。然后尝试再做一遍,确保你永远不要使用sudonpm(或问题可能会回来)。

更多信息:npm throws error without sudo

答案 5 :(得分:4)

重新启动PC即可正常工作。

答案 6 :(得分:3)

删除yarn.lockpackage-lock.jsonnode_modules

然后

npm install -f 

为我工作

答案 7 :(得分:3)

使npm在代理网络中运行良好的三件事。

此设置npm注册表,默认情况下可能需要https。

  

npm config set registry&#34; http://registry.npmjs.org/&#34;

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

  

npm config set proxy&#34; http://username:password@proxy-url:proxy-port&#34;

     

npm config set https-proxy   &#34; http://username:password@proxy-url:proxy-port&#34;

您还可以通过

检查它们是否已设置
  

npm config get https-proxy

表示所有值。

答案 8 :(得分:1)

npm config rm proxy

npm config rm https-proxy

适合我!

答案 9 :(得分:1)

以防万一...再多花点时间为我工作。 可能只是一个临时连接问题。

答案 10 :(得分:1)

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

我做了这样的事情

  • npm配置列表
  • npm配置编辑(在vi中打开)
  • 编辑或设置https-proxy,代理,注册表的配置条目
  • npm安装

答案 11 :(得分:1)

如果您使用的是Windows,则应遵循“高级系统设置”来检查在那里声明的env var,您应注意,代理配置可能位于环境变量中,如下图所示:

Windows env vars

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

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

答案 12 :(得分:1)

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

答案 13 :(得分:1)

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

  • 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)

答案 14 :(得分:1)

这对我有用:

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/

答案 15 :(得分:1)

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

1。 npm config rm proxy

2。 npm config rm https-proxy

3. npm install npm @ latest -g

FOR MAC / LINUX
1。 sudo npm config rm proxy

2。 sudo npm config rm https-proxy

3. sudo npm install npm @ latest -g

基本上这是npm的版本。请检查其工作

答案 16 :(得分:1)

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

  

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

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

yarn install

阅读更多内容 - Yarn: Migrating from npm

答案 17 :(得分:1)

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

网络适配器属性&gt; IPv4属性&gt;首选DNS地址:8.8.8.8

答案 18 :(得分:1)

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

互换使用
yarn add

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

答案 19 :(得分:1)

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

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

npm install resolve@^1.1.6

单独跑步时:

npm install resolve

没有工作。

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

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

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

答案 20 :(得分:1)

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

答案 21 :(得分:1)

如果您的已保存的承载令牌现在无效,您可能还会遇到此错误。我在使用私人仓库时遇到了这种情况,其中帐户被擦除并重置,使令牌无效。虽然您的仓库可能不需要身份验证,但如果您有先前登录的令牌,则会通过该令牌,如果它无效,您的连接将被关闭。

您可以通过使用新用户名和密码再次登录来解决此问题,或者可以通过简单地通过npm注销来解决此问题。

答案 22 :(得分:1)

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

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

答案 23 :(得分:1)

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

答案 24 :(得分:0)

npm配置集https-proxy“ http://username:password@proxy-url:proxy-port”对我有用

答案 25 :(得分:0)

请使用

  
    

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

  

答案 26 :(得分:0)

以防万一,这对遇到我的情况的人有帮助:我最近安装了Fiddler,该设备(我不知道)通过127.0.0.1:8866添加了网络代理。我进入Ubuntu网络设置,单击“网络代理”设置,然后将其禁用,然后一切恢复正常。

因此,通常,请检查以确保由于您正在做的其他事情而没有设置网络代理。

答案 27 :(得分:0)

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

答案 28 :(得分:-1)

解决方案 1:

MAC + LINUX

使用 sudo 运行此命令

sudo npm install -g yo

视窗

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

解决方案 2:

运行此命令然后尝试

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