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

Expo从51升级到53后出现@env模块找不到的TypeScript错误,求快速解决方法

Expo从51升级到53后出现@env模块找不到的TypeScript错误,求快速解决方法

兄弟,我之前升级Expo大版本的时候也碰到过一模一样的@env类型报错,给你几个亲测有效的快速排查方向,按顺序试基本能搞定:

1. 先确认react-native-dotenv的Babel配置没失效

Expo 53对应的React Native版本是0.79,对Babel插件的解析逻辑有小调整,检查你的babel.config.js里的插件配置,确保moduleName严格是@env(和你代码里导入的一致):

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: [
      ['module:react-native-dotenv', {
        moduleName: '@env',
        path: '.env',
        allowUndefined: true
      }]
    ]
  };
};

2. 修复TypeScript类型定义(最常见原因)

这个报错本质是TS找不到@env的类型声明,按下面步骤来:

  • 如果没装过类型包,先安装:
    npm install @types/react-native-dotenv --save-dev
    
  • 项目根目录新建/检查env.d.ts文件,确保正确声明模块和你的环境变量:
    declare module '@env' {
      // 替换成你实际用到的环境变量,或者用下面的兼容写法
      export const API_URL: string;
      export const FIREBASE_KEY: string;
    
      // 如果你不想逐个声明,可以用这个兼容所有变量的写法
      export const [key: string]: string | undefined;
    }
    
  • 打开tsconfig.json,确认include数组包含了这个类型文件:
    "include": [
      "src/**/*",
      "env.d.ts",
      ".expo/types/**/*"
    ]
    

3. 清理缓存(升级后必做)

Expo和TS的缓存经常会导致奇怪的模块解析错误,直接清干净:

  • 清除Expo缓存:
    expo start -c
    
  • 重启VSCode的TS服务:按Ctrl+Shift+P(Windows)/Cmd+Shift+P(Mac),选择「TypeScript: Restart TS Server」

4. 升级react-native-dotenv版本

你当前用的3.4.11版本可能和RN 0.79(Expo53)兼容性一般,升级到最新版试试:

npm install react-native-dotenv@latest --save-dev

如果上面的方法都试了还没好,检查tsconfig.json的compilerOptions是否开启了这两个选项:

"compilerOptions": {
  "allowSyntheticDefaultImports": true,
  "esModuleInterop": true,
  // 其他原有配置...
}

我当时就是类型文件没被TS识别+缓存残留,按步骤2+3操作完就解决了,你可以快速试下!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:08:01