f8859b4601
PackageList.java generated by RN autolinking imported expo.core.ExpoModulesPackage
(old SDK <48 name). Root cause: RN CLI couldn't read expo's react-native.config.js
through the pnpm symlink (it lives at .pnpm/expo@52..../expo/react-native.config.js),
so it fell back to deriving the import path from expo's Android gradle namespace
("expo.core") + assumed class name (ExpoModulesPackage), producing a path that
doesn't exist (the actual class lives at expo.modules.ExpoModulesPackage).
Added "expo" to .npmrc public-hoist-pattern so RN's autolinking can resolve
expo's react-native.config.js via the standard node_modules lookup. That config
explicitly sets packageImportPath to the correct expo.modules.ExpoModulesPackage.
Also corrected @expo/metro-runtime from 55.0.11 (added blindly earlier) to ~4.0.1
which is the SDK-52-aligned version.
17 lines
761 B
Plaintext
17 lines
761 B
Plaintext
# React Native / Expo expects a flat (npm/yarn-style) node_modules layout
|
|
# where transitive deps are reachable from any package. pnpm's strict
|
|
# isolation breaks that — Metro can't resolve @babel/runtime/helpers/*,
|
|
# @expo/metro-runtime, react-native-* peers, etc. when they're only
|
|
# installed for the package that declared them.
|
|
#
|
|
# These patterns hoist the common RN/Expo dependency families to the
|
|
# workspace root node_modules so Metro and the Expo bundler can find
|
|
# them via the standard Node resolution algorithm.
|
|
public-hoist-pattern[]=*@babel/runtime*
|
|
public-hoist-pattern[]=@expo/*
|
|
public-hoist-pattern[]=expo
|
|
public-hoist-pattern[]=expo-*
|
|
public-hoist-pattern[]=*react-native*
|
|
public-hoist-pattern[]=@react-native*
|
|
public-hoist-pattern[]=*metro*
|