Expo Router集成Clerk报错:Automatic publicPath is not supported in this browser
解决Expo Router + Clerk集成的"Automatic publicPath is not supported"报错
版本兼容性排查
Expo Router和Clerk的版本迭代可能带来适配问题,先确认依赖包是最新稳定版。执行命令更新:npm install @clerk/clerk-expo@latest expo-router@latest手动指定Clerk的publicPath
报错核心是自动publicPath不被支持,直接在ClerkProvider里手动配置路径。修改根布局文件(如app/_layout.tsx):import { ClerkProvider } from '@clerk/clerk-expo'; import { Slot } from 'expo-router'; export default function RootLayout() { return ( <ClerkProvider publishableKey={process.env.EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY} publicPath="/_clerk" > <Slot /> </ClerkProvider> ); }同时在
app.json中补充web配置:{ "expo": { "web": { "bundler": "metro", "publicPath": "/" } } }临时切换JS引擎排查
报错关联Hermes引擎,可临时切换到JSC测试是否解决问题。修改app.json:{ "expo": { "jsEngine": "jsc" } }如果切换后正常,说明是Hermes与Clerk打包逻辑的适配问题,可关注官方后续更新。
避免路由冲突
不要创建/_clerk相关的自定义路由文件,防止干扰Clerk的内置路径处理。
内容的提问来源于stack exchange,提问作者bonjofy
相关产品推荐
相关产品推荐

