diff --git a/package/src/dependencies/ModuleProxy.ts b/package/src/dependencies/ModuleProxy.ts index 81210c9810..7b515feb30 100644 --- a/package/src/dependencies/ModuleProxy.ts +++ b/package/src/dependencies/ModuleProxy.ts @@ -9,6 +9,16 @@ export const createModuleProxy = (getModule: () => ImportType): TModule const proxy = new Proxy(holder, { get: (target, property) => { + if (property === '$$typeof') { + // If inlineRequires is enabled, Metro will look up all imports + // with the $$typeof operator. In this case, this will throw the + // `OptionalDependencyNotInstalledError` error because we try to access the module + // even though we are not using it (Metro does it), so instead we return undefined + // to bail out of inlineRequires here. + // See https://github.com/mrousavy/react-native-vision-camera/pull/2953 + return undefined + } + if (target.module == null) { // lazy initialize module via require() // caller needs to make sure the require() call is wrapped in a try/catch