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

React Native项目Metro中@babel出现addHelper未定义错误求助

解决React Native中Metro的@babel模块"Cannot read properties of undefined (reading 'addHelper')"错误

问题分析

该错误核心原因是babel依赖版本不匹配,尤其是metro-react-native-babel-preset版本与React Native主版本严重脱节;同时缓存残留、手动修改node_modules内文件的操作,会导致问题反复出现且无法通过局部修改彻底解决。

解决方案

1. 对齐metro-react-native-babel-preset版本

React Native 0.72.x对应的metro-react-native-babel-preset版本应为0.72.x,你当前使用的0.59.0版本过低,执行以下命令更新:

# npm
npm install metro-react-native-babel-preset@0.72.1 --save-dev

# yarn
yarn add metro-react-native-babel-preset@0.72.1 --dev

2. 恢复手动修改的babel文件

你之前修改的@babel相关index.js文件会被包管理器自动覆盖,且会破坏依赖一致性,请删除所有手动修改,恢复node_modules内的原始文件。

3. 清理所有缓存并重装依赖

# 清理Metro缓存
npx metro-cache clean

# 清理npm缓存(yarn用户执行 yarn cache clean)
npm cache clean --force

# 删除依赖目录和锁文件
rm -rf node_modules package-lock.json yarn.lock

# 重新安装依赖
npm install
# yarn用户执行 yarn install

4. 重启Metro服务器(带缓存重置)

npx react-native start --reset-cache

5. 优化babel依赖一致性(可选)

检查package.json中的overrides字段,当前@babel/traverse版本7.22.6与其他babel依赖(7.20.x)版本不一致,可考虑移除该override,或修改为与@babel/core一致的版本:

"overrides": {
  "@babel/traverse": "7.20.0"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:15:28