11// Learn more https://docs.expo.io/guides/customizing-metro
22const { getDefaultConfig } = require ( 'expo/metro-config' ) ;
3- const path = require ( 'path' ) ;
4-
5- const monorepoRoot = path . resolve ( __dirname , '../..' ) ;
63
74/** @type {import('expo/metro-config').MetroConfig } */
85const config = getDefaultConfig ( __dirname ) ;
96
107const { transformer, resolver } = config ;
118
12- config . watchFolders = [ monorepoRoot ] ;
13-
149config . transformer = {
1510 ...transformer ,
1611 babelTransformerPath : require . resolve ( 'react-native-svg-transformer/expo' ) ,
@@ -19,23 +14,6 @@ config.resolver = {
1914 ...resolver ,
2015 assetExts : resolver . assetExts . filter ( ( ext ) => ext !== 'svg' ) ,
2116 sourceExts : [ ...resolver . sourceExts , 'svg' ] ,
22- nodeModulesPaths : [
23- path . resolve ( __dirname , 'node_modules' ) ,
24- path . resolve ( monorepoRoot , 'node_modules' ) ,
25- ] ,
26- // Always resolve react and react-native from the monorepo root so that
27- // workspace packages with their own nested node_modules (e.g.
28- // packages/react-native-executorch/node_modules/react) don't create a
29- // second React instance and trigger "Invalid hook call".
30- resolveRequest : ( context , moduleName , platform ) => {
31- if ( moduleName === 'react' || moduleName === 'react-native' ) {
32- return {
33- filePath : require . resolve ( moduleName , { paths : [ monorepoRoot ] } ) ,
34- type : 'sourceFile' ,
35- } ;
36- }
37- return context . resolveRequest ( context , moduleName , platform ) ;
38- } ,
3917} ;
4018
4119config . resolver . assetExts . push ( 'pte' ) ;
0 commit comments