代理环境下Expo无法连接服务器,expo login报400错误如何解决
问题根因
expo-cli底层依赖的请求库默认不会继承npm的全局代理配置,仅配置npm代理无法让expo的网络请求走代理链路,是你重装expo-cli、Node.js都无法解决问题的核心原因。
解决方案步骤
- 先配置expo专属的代理环境变量,临时生效可直接在当前终端执行以下命令;需要永久生效的话把命令写入当前用户的
~/.bashrc、~/.zshrc等shell配置文件,再执行source 对应配置文件名即可生效:
export EXPO_HTTP_PROXY=http://你的代理地址:代理端口 export EXPO_HTTPS_PROXY=http://你的代理地址:代理端口 # 若代理需要账号密码,使用如下格式 # export EXPO_HTTP_PROXY=http://用户名:密码@代理地址:代理端口 # export EXPO_HTTPS_PROXY=http://用户名:密码@代理地址:代理端口
- 配置完成后验证环境变量是否生效:
echo $EXPO_HTTP_PROXY echo $EXPO_HTTPS_PROXY
确认输出内容和你实际使用的代理地址一致即可。
- 清除expo本地缓存和无效登录态:
expo logout rm -rf ~/.expo
- 重新执行
expo login验证登录是否正常。 - 如果仍然报错,可开启debug模式查看详细请求日志定位异常:
EXPO_DEBUG=true expo login
注意事项
- expo原生不支持socks5代理,如果你使用的是socks5协议代理,需要先转换为http/https协议代理再配置给expo。
- 确认你的代理服务器没有拦截expo官方相关域名的请求,放行对应访问规则即可。
内容的提问来源于stack exchange,提问作者Emmanuel Yeboah
相关产品推荐
相关产品推荐

