React Native 如何调试此错误:错误:错误:解析依赖项:在〈到城域绑定器的本地路径>'- RN 0.70中找到重复的依赖项'undefined'

6ss1mwsb  于 2023-03-03  发布在  React
关注(0)|答案(3)|浏览(192)

正在执行从0.69.5到0.70.3的React本机更新。
应用程序正在两个平台上构建,但在Metro上运行时出现此错误。
error: Error: resolveDependencies: Found duplicate dependency key 'undefined' in /Users/LA/Repo/sb-app/index.js at resolveDependencies (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/DeltaBundler/graphOperations.js:484:13)

error: Error: resolveDependencies: Found duplicate dependency key 'undefined' in /Users/LA/Repo/sb-app/index.js
    at resolveDependencies (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/DeltaBundler/graphOperations.js:484:13)
    at processModule (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/DeltaBundler/graphOperations.js:232:31)
    at async traverseDependenciesForSingleFile (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/DeltaBundler/graphOperations.js:221:3)
    at async Promise.all (index 0)
    at async initialTraverseDependencies (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/DeltaBundler/graphOperations.js:204:3)
    at async DeltaCalculator._getChangedDependencies (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/DeltaBundler/DeltaCalculator.js:208:25)
    at async DeltaCalculator.getDelta (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/DeltaBundler/DeltaCalculator.js:90:16)
    at async DeltaBundler.buildGraph (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/DeltaBundler.js:56:5)
    at async IncrementalBundler.buildGraphForEntries (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/IncrementalBundler.js:81:19)
    at async IncrementalBundler.buildGraph (/Users/LA/Repo/sb-app/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/IncrementalBundler.js:161:19)

跟随错误文件的位置只会把我带到'throw'语句,当然,在index.js或app.tsx上没有重复的deps,因为我假设错误只是被向上抛出到那个文件。
无论如何,这已经困扰了我和我的团队两天了,希望其他人可能遇到过这个问题,知道如何调试它。
我还没有看到这个错误张贴在堆栈或github,所以张贴在这里。

t1qtbnec

t1qtbnec1#

这是已知问题,请尝试按照metro GitHub存储库中的说明解决此问题https://github.com/facebook/metro/issues/857

h7wcgrx3

h7wcgrx32#

我昨天就遇到过这个问题,在这个(https://github.com/facebook/metro/issues/857)metro Github仓库问题中提到的解决方案没有一个对我不起作用。经过几个小时的调试,我把我的"metro-config": "^0.73.2"版本改为package.json文件中的"metro-config": "0.71.3",它起作用了!:)

dba5bblo

dba5bblo3#

https://github.com/facebook/metro/issues/857#issuecomment-1276253449中有详细信息,但总结是当您的node_modules中有多个版本的Metro时会发生这种情况,请使用yarn why metro进行确认。
您不应在项目的package.json * 中列出任何metro*依赖项,除了 *,对于非Expo,metro-react-native-babel-preset。Metro是React Native / Expo应用中的传递依赖项,因此您无需列出它。
删除它们并重新运行yarn/npm应该可以解决问题。如果没有,请确保没有任何依赖项错误地依赖于metroreact-native。同样,yarn why metro应该会有所帮助。

相关问题