无法解析模块./debugger-ui/debuggerWorker.cff11639.js,求解决方法
debuggerWorker.cff11639.js的问题 首先还原你遇到的错误信息:
错误:无法从当前路径解析模块
./debugger-ui/debuggerWorker.cff11639.js
错误:无法从当前路径解析模块./debugger-ui/debuggerWorker.cff11639.js:以下文件均不存在:
- debugger-ui/debuggerWorker.cff11639.js(.native|.native.js|.js|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx)
- debugger-ui/debuggerWorker.cff11639.js/index(.native|.native.js|.js|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx)
在ModuleResolver.resolveDependency (/Users/silent/Documents/CompanyTest/ConnectPlus/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:163:15)
在ResolutionRequest.resolveDependency (/Users/silent/Documents/CompanyTest/ConnectPlus/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:52:18)
在DependencyGraph.resolveDependency (/Users/silent/Documents/CompanyTest/ConnectPlus/node_modules/metro/src/node-haste/DependencyGraph.js:287:16)
在/Users/silent/Documents/CompanyTest/ConnectPlus/node_modules/metro/src/lib/transformHelpers.js:267:42
在Server.(/Users/silent/Documents/CompanyTest/ConnectPlus/node_modules/metro/src/Server.js:841:41)
在Generator.next ()
在asyncGeneratorStep (/Users/silent/Documents/CompanyTest/ConnectPlus/node_modules/metro/src/Server.js:99:24)
在_next (/Users/silent/Documents/CompanyTest/ConnectPlus/node_modules/metro/src/Server.js:119:9)
我之前开发React Native项目时也碰到过一模一样的问题,给你几个亲测有效的排查解决步骤:
先清Metro缓存重启服务:Metro的缓存经常会导致这种模块解析异常,这是最快速的排查手段。运行以下命令重启Metro并清空缓存:
# 使用npm的情况 npx react-native start --reset-cache # 使用yarn的情况 yarn start --reset-cache检查metro包内的debugger-ui目录:去项目的
node_modules/metro/src/路径下,确认是否存在debugger-ui文件夹,并且里面有debuggerWorker相关的文件(文件名的哈希值可能和你报错的不一样,但核心文件结构必须存在)。如果这个目录缺失或者文件不全,说明metro包安装不完整。重新安装依赖修复metro包:如果确认是metro包损坏,先卸载相关依赖再重新安装:
# npm用户 npm uninstall metro metro-core metro-react-native-babel-transformer npm install metro metro-core metro-react-native-babel-transformer --save-dev # yarn用户 yarn remove metro metro-core metro-react-native-babel-transformer yarn add metro metro-core metro-react-native-babel-transformer --dev要是还是不行,干脆直接删除整个
node_modules和锁文件,重新全量安装依赖:# npm用户 rm -rf node_modules package-lock.json npm install # yarn用户 rm -rf node_modules yarn.lock yarn install排查metro配置文件是否异常:检查项目根目录的
metro.config.js,看看有没有自定义的resolver配置(比如blockList或者extraNodeModules)不小心拦截了metro自身的debugger-ui路径。默认配置不会有这个问题,要是你改过配置,把相关的拦截规则去掉试试。检查React Native与Metro的版本兼容性:有时候版本不匹配也会触发这类问题。打开你的
package.json,对比react-native和metro的版本,参考React Native官方的版本对应表调整,确保两者版本兼容后重新安装依赖。
内容的提问来源于stack exchange,提问作者Deep

