From b2e01999d398713cfb5103a1862d8045434f7f2f Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Thu, 29 Jun 2023 14:56:32 +0100 Subject: [PATCH] feat: Add alternative base config check to loadMetroConfig (11.x) --- packages/cli-plugin-metro/src/tools/loadMetroConfig.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/cli-plugin-metro/src/tools/loadMetroConfig.ts b/packages/cli-plugin-metro/src/tools/loadMetroConfig.ts index 240882479..ea710b89c 100644 --- a/packages/cli-plugin-metro/src/tools/loadMetroConfig.ts +++ b/packages/cli-plugin-metro/src/tools/loadMetroConfig.ts @@ -20,6 +20,10 @@ export type ConfigLoadingContext = Pick< 'root' | 'reactNativePath' | 'platforms' >; +declare global { + var __REACT_NATIVE_METRO_CONFIG_LOADED: boolean; +} + /** * Get the config options to override based on RN CLI inputs. */ @@ -98,6 +102,9 @@ export default async function loadMetroConfig( logger.debug(`Reading Metro config from ${projectConfig.filepath}`); if ( + !global.__REACT_NATIVE_METRO_CONFIG_LOADED && + // TODO(huntie): Remove this check from 0.73 onwards (all users will be on + // the next major @react-native/metro-config version) !/['"']@react-native\/metro-config['"']/.test( fs.readFileSync(projectConfig.filepath, 'utf8'), )