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*
+1
View File
@@ -18,6 +18,7 @@
"clean": "rm -rf .expo node_modules/.cache .turbo *.tsbuildinfo" "clean": "rm -rf .expo node_modules/.cache .turbo *.tsbuildinfo"
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.29.2",
"@chat-app/db-types": "workspace:*", "@chat-app/db-types": "workspace:*",
"@chat-app/shared": "workspace:*", "@chat-app/shared": "workspace:*",
"@config-plugins/react-native-webrtc": "^10.0.0", "@config-plugins/react-native-webrtc": "^10.0.0",
+3
View File
@@ -150,6 +150,9 @@ importers:
apps/mobile: apps/mobile:
dependencies: dependencies:
'@babel/runtime':
specifier: ^7.29.2
version: 7.29.2
'@chat-app/db-types': '@chat-app/db-types':
specifier: workspace:* specifier: workspace:*
version: link:../../packages/db-types version: link:../../packages/db-types