执行expo start时遇Unable to resolve错误,如何修复?
解决
expo start时的Unable to resolve "./ExpoTHREE"错误 这个错误通常是expo-three的依赖解析出了问题,下面是几个经过验证的解决方法,按顺序尝试就行:
第一步:检查
expo-three与Expo SDK的版本兼容性
不同版本的Expo SDK对应特定版本的expo-three,版本不匹配很容易导致文件缺失或解析失败。你可以先查看当前项目的Expo SDK版本(在app.json或package.json里能找到),然后安装对应版本的expo-three。比如如果你的SDK是49,就执行:npm uninstall expo-three npm install expo-three@~7.0.0(用Yarn的话,把
npm换成yarn即可)第二步:清除Metro打包缓存
Metro的缓存有时候会残留旧的解析信息,导致明明文件存在却找不到。直接执行带清除缓存的启动命令:expo start --clear也可以手动删除
.expo缓存目录——Mac/Linux用rm -rf .expo/,Windows用rmdir /s /q .expo,之后再重新启动项目。第三步:重新安装所有依赖
可能是node_modules里的expo-three文件损坏或缺失,彻底清理后重装就能解决:# 删除依赖目录和锁文件 rm -rf node_modules package-lock.json yarn.lock # 重新安装 npm install安装完成后再尝试启动项目,大概率能修复文件缺失的问题。
第四步:确认
expo-three的文件结构
去项目的node_modules/expo-three/build目录下,检查是否存在ExpoTHREE.js或ExpoTHREE.tsx文件。如果没有,说明安装过程中出现了错误(比如网络问题导致下载不完整),可以换个npm镜像源后重新安装expo-three。
内容的提问来源于stack exchange,提问作者denizs inann
相关产品推荐
相关产品推荐

