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:
byGalax
2026-05-14 21:14:41 +02:00
parent cb8e729624
commit 4068e8c7b6
3 changed files with 19 additions and 0 deletions
+15
View File
@@ -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*