Expo Router 52无法检测app目录下部分文件及目录问题求助
Expo Router SDK 52 无法检测部分文件/目录的排查方向
文件/目录命名违规
Expo Router的文件路由有严格的命名规则,直接导致无法识别的情况包括:- 文件名/目录名包含空格、特殊字符(仅允许
_、-、.) - 以
.或_开头的文件/目录会被标记为私有,不会生成路由 - 大小写不匹配(部分系统大小写敏感,路由路径会严格区分)
检查payments目录和users内未识别文件的命名是否符合要求。
- 文件名/目录名包含空格、特殊字符(仅允许
缓存未彻底清除
重启VS Code没用的话,试试彻底清理Expo缓存:- 执行命令:
npx expo start --clear,强制清除缓存后重启项目 - 手动删除项目根目录下的
.expo文件夹,再重新启动
- 执行命令:
文件扩展名错误
确认未被识别的文件扩展名是否正确:- Expo Router仅将
.js、.jsx、.ts、.tsx视为路由页面文件 - 如果是其他扩展名(比如
.txt、.md),不会被纳入路由体系
- Expo Router仅将
项目配置文件异常
检查app.json或app.config.js:- 确认
expo字段下没有自定义的assetBundlePatterns或路由相关配置,导致部分目录被排除扫描 - 确保
scheme等路由相关配置没有冲突
- 确认
嵌套路由结构不符合规则
Expo Router对嵌套路由的结构有要求:- 确保
payments目录直接在app根目录下,而非嵌套在非路由目录内 - 如果
users内的文件是子路由,父目录users需要有对应的_layout.jsx/_layout.tsx文件,否则子路由无法被识别
- 确保
SDK版本兼容性Bug
SDK 52属于较新版本,可能存在已知问题:- 尝试更新Expo Router到最新兼容版本:
npm install expo-router@latest - 查看Expo官方GitHub Issues,确认是否有相同的未识别目录/文件问题
- 尝试更新Expo Router到最新兼容版本:
内容的提问来源于stack exchange,提问作者Raul Hernandez




