You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置代理后执行yarn set version berry报ETIMEDOUT错误

问题根因

执行yarn set version berry触发超时的核心原因是:该命令是Yarn 1(经典版)内置的版本切换逻辑,默认直连公网代码托管平台拉取Berry版本的发行包,不会读取你在.npmrc、.yarnrc中配置的包下载代理参数。
你之前配置的代理仅对常规的npm/yarn包安装逻辑生效,这也是为什么npm install -g yarn可以正常运行,但版本切换命令会直连公网443端口被企业代理拦截,最终抛出ETIMEDOUT连接超时错误。

解决方法
  • 方案1:终端注入系统级代理环境变量后执行命令
    版本拉取逻辑会读取进程级的代理环境变量,执行命令前先在当前终端注入代理参数即可:
    Windows命令提示符(CMD)环境:
    set HTTP_PROXY=http://企业代理IP:代理端口
    set HTTPS_PROXY=http://企业代理IP:代理端口
    yarn set version berry
    
    Windows PowerShell环境:
    $env:HTTP_PROXY="http://企业代理IP:代理端口"
    $env:HTTPS_PROXY="http://企业代理IP:代理端口"
    yarn set version berry
    
    Mac/Linux终端环境:
    export HTTP_PROXY=http://企业代理IP:代理端口
    export HTTPS_PROXY=http://企业代理IP:代理端口
    yarn set version berry
    
  • 方案2:配置Yarn版本拉取镜像源
    不想每次执行命令前手动设置环境变量的话,可以直接修改Yarn版本拉取的默认地址为国内镜像,绕开对境外代码平台的直连:
    yarn config set yarnVersionDownloadBaseUrl https://registry.npmmirror.com/-/binary/yarn/
    
    配置完成后直接执行yarn set version berry即可正常拉取。
  • 方案3:本地导入版本包(网络管控极严场景适用)
    如果企业网络完全限制公网访问,可以手动导入版本包:
    1. 在可访问公网的设备上下载对应Berry版本的发行文件,放到项目根目录的.yarn/releases/路径下
    2. 项目根目录执行yarn set version from sources ./.yarn/releases/你下载的yarn-berry.cjs文件名,全程无外网请求即可完成版本切换。

校验方式:版本切换完成后执行yarn -v,返回3.x或4.x开头的版本号即代表切换成功。

内容的提问来源于stack exchange,提问作者Harish Y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 12:31:02