WSL2 下,npm install 使用淘宝源 npmmirror 超时问题的解决方法
DebugMi 发布于 2023-03-19 17:15编辑于 2024-08-29 03:45阅读:
2023年初,在 WSL2 下,pnpm install 时(npm 也一样),会概率性的出现 timeout 问题,导致安装失败,多次尝试却可以偶尔成功。由淘宝源(https://registry.npmmirror.com
)换成腾讯源(https://mirrors.cloud.tencent.com/npm/
)之后,一切正常,怀疑是淘宝源有问题,网上找遍,没有任何解决方法
转眼来到 2023 年 3 月,以为这个问题淘宝源已经解决了,把腾讯源换成淘宝源之后,发现还是一样,而且网上还是没有任何相关讨论,非常奇怪,决定花时间查一下
先用 pnpm i --reporter=ndjson
看看安装出了什么问题,发现一直卡在下载这个包: https://registry.npmmirror.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz
,然后用 curl 看看情况
curl -v curl -v https://registry.npmmirror.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz
输出
...
(2404:6800:4001:c01::69) network is unreachable
...
感觉是 ipv6 的问题,查了一下 WSL2 关闭 ipv6 的方法,在 win 下,新建 ~/.wslconfig
文件
[wsl2]
kernelCommandLine=ipv6.disable=1
然后在 win 下重启 WSL2
# 先关闭再启动
wsl --shutdown
wsl
如果不想重启,也可以用命令手动开启和关闭 ipv6
# 关闭
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
# 开启
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
完美解决,又可以愉快的用上淘宝源了
0