React Native Expo iOS启动报错:Object.defineProperty未定义及main未注册
解决React Native Expo iOS应用启动时的
Object.defineProperty未定义及main未注册报错 针对你遇到的这两个报错,尝试以下解决方案:
1. 切换JS引擎至JSC
报错提示Hermes引擎出现异常,可先尝试禁用Hermes,改用JSC引擎:
在项目根目录的app.json或app.config.js中修改配置:
{ "expo": { "jsEngine": "jsc" } }
修改后执行npm start重启项目。
2. 彻底清理缓存
仅删除node_modules不足以清除所有缓存,执行以下命令彻底清除Metro和Expo缓存:
npx expo start --clear
也可手动删除以下目录:
- 项目根目录下的
.expo文件夹 node_modules/.cache文件夹
3. 修复依赖版本兼容性
可能是Expo SDK与React Native或其他依赖版本不匹配导致的问题,执行以下命令自动修复依赖:
npx expo install --fix
修复完成后重新安装依赖并启动项目:
rm -rf node_modules package-lock.json npm install npm start
4. 检查入口文件的AppRegistry注册
确保项目入口文件(通常是App.js或index.js)正确注册了应用组件:
import { AppRegistry } from 'react-native'; import App from './App'; import { name as appName } from './app.json'; AppRegistry.registerComponent(appName, () => App);
同时检查app.json中的entryPoint字段是否指向正确的入口文件。
5. 排查第三方依赖冲突
若近期添加了新的第三方依赖,可能存在兼容性问题。尝试暂时移除最近添加的依赖,重启项目验证是否解决问题,逐步排查出冲突的依赖后,更换为兼容版本或替代库。
内容的提问来源于stack exchange,提问作者EmreUSL
相关产品推荐
相关产品推荐

