fix(mobile): hoist RN/Expo transitive deps for Metro resolution
pnpm's default strict isolation hides @babel/runtime/helpers/* and other transitive deps from Metro, which expects flat node_modules layout. Each missing dep was a separate failed EAS build (metro-runtime, @babel/runtime, ...) — added .npmrc with public-hoist-pattern entries that catch the common RN/Expo families so we stop whack-a-moling them. Also kept @babel/runtime as direct dep of @chat-app/mobile for safety.
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# 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[]=*react-native*
|
||||
public-hoist-pattern[]=@react-native*
|
||||
public-hoist-pattern[]=*metro*
|
||||
Reference in New Issue
Block a user