React Native模拟器启动报错:EventEmitter.js语法错误排查求助
错误原因及修复方案
错误原因分析
这个错误指向react-native核心库的EventEmitter.js文件语法解析失败,大概率是以下几个原因:
- 依赖版本不兼容:React Native 0.76.6对TypeScript、Babel等工具链有特定版本要求,你使用的TypeScript 5.7.2版本过高,超出了RN 0.76的兼容范围,导致语法解析逻辑冲突。
- Babel配置冗余/顺序错误:
metro-react-native-babel-preset已经内置了TypeScript处理能力,额外添加@babel/preset-typescript可能引发解析规则冲突。 - 依赖包损坏或缓存残留:即使执行过清缓存操作,仍可能存在未清理干净的metro缓存或损坏的
node_modules文件。
修复步骤
1. 降级TypeScript到兼容版本
React Native 0.76.6官方推荐TypeScript版本为~5.3.3,执行以下命令降级:
npm install typescript@~5.3.3 --save-dev
2. 调整Babel配置
移除冗余的@babel/preset-typescript,修改babel.config.js为:
module.exports = { presets: [ 'module:metro-react-native-babel-preset', ], plugins: [ 'react-native-reanimated/plugin', ], };
3. 彻底清理所有缓存
执行以下命令清理metro、npm及项目缓存:
npx react-native start --reset-cache npm cache clean --force
4. 重新安装依赖
删除现有依赖文件后重新安装:
rm -rf node_modules package-lock.json npm install
5. 验证并重启项目
启动模拟器后重新运行项目:
npx react-native run-ios # 针对iOS模拟器 # 或 npx react-native run-android # 针对Android模拟器
额外排查项
如果上述步骤无效,手动检查node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js第39行的代码,确认是否存在语法错误(比如未闭合的括号)。若文件损坏,重新安装React Native核心包:
npm uninstall react-native npm install react-native@0.76.6
内容的提问来源于stack exchange,提问作者Hasan Gunduz
相关产品推荐
相关产品推荐

