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

Expo Router无法检测文件系统变更的问题排查求助

Expo Router路由检测异常:仅识别(main)文件夹变更,其他路由/文件夹被忽略

问题背景

近期开始使用Expo Router开发应用,第一天运行正常,第二天添加登录页并设为默认页面后,遇到了无法解释的路由检测问题,耗时一整天排查文件夹结构和代码均无进展。

当前文件夹结构

src/app
    - (main)/
        - _layout.tsx(使用<Tabs>包含2个Tabs.Screen,对应"page1"和"page2")
        - page1.tsx
        - page2.tsx
    - _layout.tsx(使用<Stack>包含2个Stack.Screen,对应"login"和"(main)")
    - login.tsx

异常现象与报错

根据Expo Router文档、官方模板及示例代码,上述结构应为有效,但运行应用时收到警告:

No route named "login" exists in nested children: ["(main)", "_sitemap", "[...404]"]

核心异常点:

  • login路由完全未被系统检测到,未出现在嵌套子路由列表中
  • 将login.tsx重命名为index.tsx,仍无法被识别,反而提示"index"路由不存在
  • 将index.tsx移入新建的(auth)文件夹,并将根栈路由的目标改为"(auth)",(auth)依旧未出现在路由列表中
  • 测试(main)文件夹:将其重命名为(ddddd),系统能检测到新的(ddddd)路由,但旧的(main)仍保留在路由列表中,甚至可通过站点地图导航访问

缓存清理操作(均无效)

怀疑是缓存问题,执行了以下操作后问题依旧:

  • 删除node_modules并重新安装依赖
  • 清理npm缓存(npm cache clean --force)
  • 删除/tmp目录下所有与Expo、npm、metro相关的临时文件
  • 使用npx expo start --clear启动服务器

操作后仍收到类似警告:

No route named "(auth)" exists in nested children: ["(main)", "_sitemap", "[...404]"]
(注:已将(ddddd)改回(main),系统能识别此变更)

额外测试

  • 最初是手动安装Expo Router,后尝试使用官方模板复现问题,结果一致:仅"(tabs)"文件夹的变更能被检测到,其他文件夹/文件均被忽略;且"(tabs)"重命名后,旧名称仍会保留在路由列表中

求助需求

目前倾向于是Expo Router的bug,可能与我的Arch Linux系统配置相关,但在提交官方bug报告前,想确认是否存在遗漏的明显配置错误或操作失误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:33:18