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
相关产品推荐
相关产品推荐

