正在执行从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,所以张贴在这里。
3条答案
按热度按时间t1qtbnec1#
这是已知问题,请尝试按照metro GitHub存储库中的说明解决此问题https://github.com/facebook/metro/issues/857
h7wcgrx32#
我昨天就遇到过这个问题,在这个(https://github.com/facebook/metro/issues/857)metro Github仓库问题中提到的解决方案没有一个对我不起作用。经过几个小时的调试,我把我的
"metro-config": "^0.73.2"
版本改为package.json
文件中的"metro-config": "0.71.3"
,它起作用了!:)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
应该可以解决问题。如果没有,请确保没有任何依赖项错误地依赖于metro
或react-native
。同样,yarn why metro
应该会有所帮助。