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

React Native Expo突发错误:找不到模块'babel-preset-react'求助

问题描述

我的React Native Expo应用原本能在iOS模拟器正常运行,给TextInput标签添加placeholder后,模拟器刷新时出现错误。我从Git仓库拉取了几分钟前还能正常运行的版本,但终端仍报错:node_modules/expo/AppEntry.js: Cannot find module 'babel-preset-react',并给出了依赖栈信息。我已经尝试执行npm install、npm install --save-dev @babel/preset-react,但问题没解决。应用接近完成,求解决建议。

相关配置文件

babel.config.js 初始配置

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo', "react", "es2015", "stage-0"],
  };
};

添加@babel/preset-react后的配置

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ["@babel/preset-react", 'babel-preset-expo', "react", "es2015", "stage-0"],
  };
};

package.json

{
  "name": "osl",
  "version": "1.0.0",
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web"
  },
  "dependencies": {
    "@react-navigation/native": "^6.1.1",
    "@react-navigation/native-stack": "^6.9.7",
    "expo": "~47.0.9",
    "expo-checkbox": "~2.2.2",
    "expo-font": "~11.0.1",
    "expo-secure-store": "~12.0.0",
    "expo-splash-screen": "~0.17.5",
    "expo-status-bar": "~1.4.2",
    "formik": "^2.2.9",
    "react": "18.1.0",
    "react-native": "0.70.5",
    "react-native-safe-area-context": "4.4.1",
    "react-native-screens": "~3.18.0"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/preset-react": "^7.18.6"
  },
  "private": true
}
解决建议
  • 清理缓存并重装依赖
    先删掉旧依赖和锁文件,再重新安装并清除Expo缓存:

    rm -rf node_modules
    rm package-lock.json
    npm install
    expo start -c
    

    expo start -c会彻底清除Expo的缓存,避免旧配置残留干扰。

  • 简化Babel配置
    Expo的babel-preset-expo已经集成了所有React Native开发需要的预设,包括@babel/preset-react,完全不需要额外添加react、es2015、stage-0这些冗余配置。把babel.config.js改成最简化版本:

    module.exports = function(api) {
      api.cache(true);
      return {
        presets: ['babel-preset-expo'],
      };
    };
    

    多余的预设是导致依赖冲突、模块找不到的核心原因。

  • 修复package.json语法错误
    你当前的package.json中,devDependencies下的@babel/core和@babel/preset-react之间缺少逗号,这会导致npm无法正确解析依赖列表,必须补上这个逗号后再重装依赖。

  • 更新Expo CLI(可选)
    把全局Expo CLI更新到最新版本,规避版本兼容问题:

    npm install -g expo-cli
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:15:04