解决Expo项目中‘module not found’错误及终端安装问题
npm start模块找不到问题 一、纠正初始依赖安装命令
你一开始执行的npm expo-font axios react-native-dotenv是错误的,npm安装依赖必须包含install(可简写为i)指令。针对Expo项目,更推荐用Expo官方的expo install来安装适配版本的依赖:
- 安装核心项目依赖:
expo install expo-font axios react-native-dotenv属于第三方Babel插件,需用npm单独安装为开发依赖:npm install react-native-dotenv --save-dev
二、正确安装Expo CLI
你执行的expo --global cli命令格式错误,正确的全局安装命令分两种情况:
1. 旧版Expo CLI(兼容传统Expo项目)
npm install -g expo-cli
2. 新版Expo CLI(推荐,适配Expo SDK 46+)
npm install -g @expo/cli
安装完成后,可通过以下命令验证是否安装成功:
expo --version
三、解决module not found错误(添加环境变量后仍存在)
如果已配置环境变量但问题依旧,按以下步骤排查:
检查依赖是否真的安装成功
查看项目根目录的package.json文件,确认expo-font、axios、react-native-dotenv是否出现在dependencies或devDependencies中。如果没有,重新执行正确的安装命令。配置
react-native-dotenv的Babel插件react-native-dotenv需要Babel支持,需在项目根目录的babel.config.js中添加配置:module.exports = function(api) { api.cache(true); return { presets: ['babel-preset-expo'], plugins: [ ['module:react-native-dotenv', { moduleName: '@env', path: '.env', allowUndefined: true }] ] }; };同时确保项目根目录存在
.env文件,且变量格式正确(如API_BASE_URL=https://example.com)。清除缓存并重启服务
执行以下命令清除Expo和npm缓存:expo r -c npm cache clean --force然后重新启动项目:
npm start检查Expo CLI与SDK版本兼容性
查看package.json中的expo版本,确保全局安装的Expo CLI版本与之匹配。如果版本不兼容,可卸载现有CLI后安装对应版本:npm uninstall -g expo-cli @expo/cli npm install -g @expo/cli@<对应版本号>验证环境变量配置是否生效
在终端中执行以下命令,检查Expo CLI的路径是否在系统环境变量PATH中:echo $PATH # macOS/Linux echo %PATH% # Windows确保包含Expo CLI的安装路径(通常位于
~/.npm-global/bin或C:\Users\<你的用户名>\AppData\Roaming\npm)。如果未包含,需重新配置环境变量并重启VS Code终端(必须重启终端才能让新配置生效)。
内容的提问来源于stack exchange,提问作者Savaustine

