运行npx expo start遇ExpoMetroConfig.loadAsync错误及相关问题求助
解决
npx expo start报错ExpoMetroConfig.loadAsync is not a function的方案 问题详情
运行npx expo start时触发以下错误:
TypeError: ExpoMetroConfig.loadAsync is not a function at runMetroDevServerAsync (/usr/local/lib/node_modules/expo-cli/node_modules/@expo/dev-server/src/MetroDevServer.ts:86:45) at startDevServerAsync (/usr/local/lib/node_modules/expo-cli/node_modules/xdl/src/start/startDevServerAsync.ts:75:77) at startAsync (/usr/local/lib/node_modules/expo-cli/node_modules/xdl/src/start/startAsync.ts:84:41)
同时存在以下异常:
- 使用
npx却触发了全局安装的expo-cli逻辑 - 执行
npx expo-doctor检测到包依赖错误,但npx expo-doctor --fix-dependencies提示该参数不存在
解决步骤
清除全局expo-cli残留
错误路径指向全局安装的expo-cli,说明npx优先调用了全局版本,先卸载全局包:npm uninstall -g expo-cli # 或使用yarn yarn global remove expo-cli强制调用最新版expo命令
直接指定expo@latest运行,避免缓存或旧版本问题:# 启动项目 npx expo@latest start # 用新版doctor修复依赖 npx expo@latest doctor --fix-dependencies注:
--fix-dependencies是新版expo doctor的有效参数,旧版本不支持,必须用expo@latest调用。清理项目本地依赖缓存
如果以上步骤无效,重置项目依赖:- 删除项目根目录的
node_modules文件夹 - 删除
package-lock.json或yarn.lock文件 - 重新安装依赖:
npm install # 或 yarn install
- 删除项目根目录的
检查metro配置文件
暂时注释项目中metro.config.js/metro.config.ts的自定义配置,用Expo默认配置测试,排除配置冲突问题。
内容的提问来源于stack exchange,提问作者Fábio Nicolau
相关产品推荐
相关产品推荐

