yarn install 报错 An unexpected error occurred: “https://registry.yarnpkg.com...connect ETIMEDOUT 1...

在windows 10下的命令行里运行yarn install的时候总是遇到这个错,提示下载某个包的时候timeout,retry多次都没有成功。在命令行运行

ping registry.yarnpkg.com
正在 Ping yarn.npmjs.org [104.16.22.35] 具有 32 字节的数据:
请求超时。

但是在浏览器里直接输入下载失败包的地址,是可以成功下载的。通过监控浏览器网络发现下载从一个IPv6的地址下载成功的

请求 URL: https://registry.yarnpkg.com/
请求方法: GET
状态代码: 200 
远程地址: [2606:4700::6810:1723]:443
引用者策略: strict-origin-when-cross-origin

看来失败的原因是yarn在build的过程中registry.yarnpkg.com被解析成了IPv4地址,而这个IPv4地址由于什么原因不可用。
所以解决的办法是在本地强制映射registry.yarnpkg.com到IPv6地址

  1. 找到hosts文件(C:\Windows\System32\drivers\etc\hosts),在管理员模式打开
  2. 添加下面一行并保存
[2606:4700::6810:1723]   registry.yarnpkg.com

重新yarn install,问题解决。

你可能感兴趣的:(yarn install 报错 An unexpected error occurred: “https://registry.yarnpkg.com...connect ETIMEDOUT 1...)