初始化Supabase时出现URL.hostname未实现(Hermes引擎)错误求助
Expo + Supabase 初始化报错:
URL.hostname is not implemented, js engine: hermes 问题场景
开发Expo项目时,尝试用Supabase实现登录/注册认证逻辑,未初始化Supabase时项目正常加载,但取消注释初始化代码后出现以下错误:
ERROR Error: URL.hostname is not implemented, js engine: hermes
使用的Supabase初始化代码:
import {createClient} from "@supabase/supabase-js"; const supabaseUrl = "..."; const supabaseKey = "..."; export const supabase = createClient(supabaseUrl, supabaseKey);
已确认所有依赖正确安装,且Supabase、Expo均为最新版本。
解决方法
安装URL Polyfill(推荐方案)
Hermes引擎默认未完全实现URL API,需要补充polyfill:- 安装依赖:
npx expo install react-native-url-polyfill - 在项目入口文件(如
App.js)最顶部导入polyfill:import 'react-native-url-polyfill/auto'; - 重启Expo项目即可。
- 安装依赖:
临时切换到JSC引擎
如果不想配置polyfill,可临时改用JSC引擎:
修改app.json中的Expo配置:{ "expo": { "jsEngine": "jsc" } }注:JSC性能不如Hermes,仅建议作为临时测试方案。
检查Supabase URL格式
确认supabaseUrl是完整的HTTPS格式(如https://xxx.supabase.co),不能缺少https://协议头,否则客户端解析URL时会触发错误。
内容的提问来源于stack exchange,提问作者Archie
相关产品推荐
相关产品推荐

