React Native中导入Expo模块失败的问题求助
解决Expo模块无法解析的打包失败问题
我看到你在执行import Expo from 'expo'时遇到了模块解析失败的打包错误,这个问题和React Native的Haste模块映射机制相关,下面是经过验证的解决步骤,你可以按顺序尝试:
解决步骤
- 清除watchman的所有监听:
watchman watch-del-all - 删除
node_modules文件夹并重新安装所有依赖:rm -rf node_modules && npm install - 重置Metro Bundler缓存,两种方式任选其一即可:
或者rm -rf /tmp/metro-bundler-cache-*npm start -- --reset-cache - 删除Haste模块映射缓存:
rm -rf /tmp/haste-map-react-native-packager-*
另外,从你的项目依赖配置来看,当前package.json里并没有添加expo依赖,这可能也是问题的核心根源之一! 你需要先执行以下命令安装Expo模块:
npm install expo
报错详情
error: bundling failed: Error: Unable to resolve module
expofromC:\Users\reactnative\navigate\App.js: Moduleexpodoes not exist in the Haste module map.
报错堆栈信息
at ModuleResolver.resolveDependency (C:\Users\reactnative\navigate\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:183:15) at ResolutionRequest.resolveDependency (C:\Users\reactnative\navigate\node_modules\metro\src\node-haste\DependencyGraph\ResolutionRequest.js:52:18) at DependencyGraph.resolveDependency (C:\Users\reactnative\navigate\node_modules\metro\src\node-haste\DependencyGraph.js:273:16) at Object.resolve (C:\Users\reactnative\navigate\node_modules\metro\src\lib\transformHelpers.js:261:42) at dependencies.map.result (C:\Users\reactnative\navigate\node_modules\metro\src\DeltaBundler\traverseDependencies.js:391:31) at Array.map (<anonymous>) at resolveDependencies (C:\Users\reactnative\navigate\node_modules\metro\src\DeltaBundler\traverseDependencies.js:388:18) at C:\Users\reactnative\navigate\node_modules\metro\src\DeltaBundler\traverseDependencies.js:261:33 at Generator.next (<anonymous>) at asyncGeneratorStep (C:\Users\reactnative\navigate\node_modules\metro\src\DeltaBundler\traverseDependencies.js:87:24)
项目package.json依赖配置
{ "name": "navigate", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", "test": "jest" }, "dependencies": { "react": "16.6.3", "react-native": "0.58.5", "react-navigation": "^3.3.2" }, "devDependencies": { "babel-core": "7.0.0-bridge.0", "babel-jest": "24.1.0", "jest": "24.1.0", "metro-react-native-babel-preset": "0.52.0", "react-test-renderer": "16.6.3" }, "jest": { "preset": "react-native" } }
内容的提问来源于stack exchange,提问作者Pooja Nandnikar
相关产品推荐
相关产品推荐

