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

react-native-dotenv报错:Module '@env'无导出成员,应用仍可运行

问题排查与解决方案

核心错误原因

你遇到的红色波浪线是TypeScript类型不匹配导致的:

  1. 你在App.tsx里导入了TEST_ONE和TEST_ONE_DEV,但你的.env/.env.development里根本没有这两个变量,同时./app/types/Env.ts的类型声明里也只定义了RANDOM_ENV和RANDOM_ENV_DEV,完全不对应。
  2. 应用能正常运行是因为react-native-dotenv在babel编译阶段会忽略未定义的变量(你配置了allowUndefined: true),但TypeScript的静态检测会严格校验类型声明和导入的一致性。

具体解决方案

方案1:修正变量名(如果你实际想用已定义的RANDOM系列变量)

直接把App.tsx里的导入语句改成和类型声明匹配的变量:

// App.tsx
import { RANDOM_ENV, RANDOM_ENV_DEV } from '@env';

方案2:添加对应变量与类型声明(如果你确实需要TEST_ONE系列变量)

  1. 更新.env文件:
RANDOM_ENV=HelloWorld
TEST_ONE=YourTestValue
  1. 更新.env.development文件:
RANDOM_ENV_DEV=HelloWorldDev
TEST_ONE_DEV=YourTestDevValue
  1. 修改./app/types/Env.ts的类型声明:
declare module '@env' {
  export const RANDOM_ENV: string;
  export const RANDOM_ENV_DEV: string;
  export const TEST_ONE: string;
  export const TEST_ONE_DEV: string;
}

方案3:清除IDE缓存(解决类型检测未同步问题)

如果上述修改后还是有红色波浪线,是IDE的TypeScript服务缓存没更新:

  • VS Code用户:按下Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),输入TypeScript: Restart TS Server并执行。
  • 也可以手动清除项目缓存:删除node_modules/.cache、.expo/cache目录,然后重新运行npm install或yarn install,再启动项目。

额外检查

确认tsconfig.json的typeRoots配置正确,确保./app/types目录被TypeScript识别:

{
  "compilerOptions": {
    // 其他配置...
    "typeRoots": ["./app/types", "./node_modules/@types"]
  }
}

(建议加上./node_modules/@types,避免丢失默认类型定义)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:05:16