在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地址
- 找到hosts文件(C:\Windows\System32\drivers\etc\hosts),在管理员模式打开
- 添加下面一行并保存
[2606:4700::6810:1723] registry.yarnpkg.com
重新yarn install,问题解决。