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

React Native Web项目集成导航功能时出现ReferenceError错误求助

React Native Web项目集成导航功能时出现ReferenceError错误求助

嘿,我之前在React Native Web项目里用导航库的时候也碰到过类似的模块兼容问题,给你几个实用的解决方向,你可以挨个试试:

先把你遇到的错误信息贴出来,方便更清晰定位问题:

运行Web端时触发的错误:

ReferenceError exports is not defined
Call Stack
 (anonymous function)
  KK/./node_modules/@react-navigation/native/lib/module/index.js:2:23
 ./node_modules/
  native/lib/module/index.js@http://localhost:8080/vendor.7ceb43757766eae5e934.js:380:1
 options.factory
  main.6bef3be8aaf5bb9a9a58.js

可能的解决步骤:

  • 检查依赖版本兼容性:先确认你用的@react-navigation/native版本是否适配React Native Web,有些旧版本的导航库可能只输出了CommonJS格式,没做Web端的ES模块适配,建议升级到最新稳定版试试。
  • 调整Webpack配置:在项目的webpack配置文件里,修改resolve的配置,让Webpack优先识别浏览器端的模块入口和ES格式的文件:
    resolve: {
      extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx'],
      mainFields: ['browser', 'module', 'main'],
    }
    
  • 修改Babel配置:如果是模块转换的问题,可以在babel.config.js里添加CommonJS转ES模块的插件,确保浏览器能正确识别模块导出:
    module.exports = {
      presets: ['module:metro-react-native-babel-preset'],
      plugins: [
        '@babel/plugin-transform-modules-commonjs'
      ]
    };
    
  • 清除缓存重装依赖:有时候缓存或者依赖冲突也会导致这类问题,执行以下命令重置:
    rm -rf node_modules package-lock.json
    npm install
    npm start -- --reset-cache
    

你可以先从版本检查和清除缓存开始试,这两个步骤解决过我大部分类似的问题~

备注:内容来源于stack exchange,提问作者Victor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:48:03