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