React Native集成unimodule后执行yarn android报错:无法解析.expo/.virtual-metro-entry模块
React Native CLI 项目安装 unimodule 后
yarn android 模块解析错误 问题
使用 React Native CLI 开发图像表情识别项目,为集成 tensorflow/tfjs-react-native 安装了 unimodule,但每次执行 yarn android 时出现以下错误:
Error: 无法解析模块
./.expo/.virtual-metro-entry,路径为/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/.:以下文件均不存在:
- .expo/.virtual-metro-entry(.native|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
- .expo/.virtual-metro-entry/index(.native|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)
at ModuleResolver.resolveDependency (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:114:15)
at DependencyGraph.resolveDependency (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/node-haste/DependencyGraph.js:277:43)
at /home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/lib/transformHelpers.js:169:21)
at Server._resolveRelativePath (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/Server.js:1045:12)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async Server.requestProcessor [as _processBundleRequest] (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/Server.js:449:37)
at async Server._processRequest (/home/lipl-149/Desktop/Ankit/ReactJs/ReactNativeTry/node_modules/metro/src/Server.js:383:7)
解决步骤
清除 Metro 缓存并重启服务
缓存可能残留了无效的 Expo 路径引用,执行:yarn start --reset-cache之后重新运行
yarn android。删除不必要的 .expo 目录
React Native CLI 项目不需要.expo目录,直接删除:rm -rf .expo配置 Metro 忽略 .expo 目录
在metro.config.js中添加规则,阻止 Metro 解析该目录:const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); module.exports = mergeConfig(getDefaultConfig(__dirname), { resolver: { blockList: [/\.expo\/.*/], }, });修改后重启 Metro 服务。
清理并重新安装依赖
检查package.json,移除所有非必须的expo-前缀依赖,然后执行:yarn install重新初始化 unimodule 配置
如果 unimodule 配置有误,执行:npx unimodules-cli init确保生成的配置文件中没有指向 Expo 相关路径的错误设置。
内容的提问来源于stack exchange,提问作者Ankit Dhanotiya
相关产品推荐
相关产品推荐

