运行React Native项目时expo与react native-cli均报找不到@babel依赖模块错误
报错说明
你遇到的是Babel依赖树损坏导致的通用React Native启动错误,完整报错翻译如下:
无法找到模块 'C:\Users\user\Desktop\ReactNative\InventorsArena\node_modules\@babel\traverse\node_modules\debug\src\index.js'。请确认package.json中存在有效的"main"入口 错误: 无法找到模块 'C:\Users\user\Desktop\ReactNative\InventorsArena\node_modules\@babel\traverse\node_modules\debug\src\index.js'。请确认package.json中存在有效的"main"入口 at tryPackage (internal/modules/cjs/loader.js:320:19) at Function.Module._findPath (internal/modules/cjs/loader.js:533:18) at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27) at Function.Module._load (internal/modules/cjs/loader.js:745:27) at Module.require (internal/modules/cjs/loader.js:961:19) at require (internal/modules/cjs/helpers.js:92:18) at Object.<anonymous> (C:\Users\user\Desktop\ReactNative\InventorsArena\node_modules\@babel\traverse\lib\path\index.js:10:14) at Module._compile (internal/modules/cjs/loader.js:1072:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10) at Module.load (internal/modules/cjs/loader.js:937:32)
修复步骤
- 先关闭所有正在运行的React Native相关进程,包括Metro打包服务、Expo开发服务、终端调试进程
- 进入当前项目根目录
C:\Users\user\Desktop\ReactNative\InventorsArena,删除损坏的依赖文件和锁文件:
Windows CMD/PowerShell执行:
类Unix终端执行:Remove-Item -Recurse -Force node_modules del package-lock.json yarn.lockrm -rf node_modules package-lock.json yarn.lock - 清除包管理工具全局缓存,避免拉取到损坏的依赖包:
使用npm的用户执行:
使用yarn的用户执行:npm cache clean --forceyarn cache clean - 重新安装项目依赖:
npm install # 或使用yarn yarn install - 启动项目时额外清除打包缓存:
React Native CLI用户执行:
Expo用户执行:npx react-native start --reset-cachenpx expo start --clear - 如果所有React Native项目都复现相同报错,额外卸载全局安装的Babel相关包:
不需要全局重新安装,项目内的依赖会自动拉取对应版本的Babel组件。npm uninstall -g @babel/core @babel/traverse
验证逻辑
上述操作执行完成后重新启动项目,依赖树会重新构建,损坏的debug包和Babel组件会被完整的版本替换,报错会直接消失。
内容的提问来源于stack exchange,提问作者Debadrita Ghosh
相关产品推荐
相关产品推荐

