// apps/mobile/metro.config.js // Monorepo 호환 Metro 설정 // 핵심: root node_modules의 react-native 0.84를 절대 참조하지 않도록 격리 const { getDefaultConfig } = require('expo/metro-config') const path = require('path') const projectRoot = __dirname const monorepoRoot = path.resolve(projectRoot, '../..') const config = getDefaultConfig(projectRoot) // packages 디렉토리만 watch (root node_modules는 watch하지 않음!) config.watchFolders = [ path.resolve(monorepoRoot, 'packages/core'), path.resolve(monorepoRoot, 'packages/ui-native'), path.resolve(monorepoRoot, 'packages/i18n'), path.resolve(monorepoRoot, 'packages/api-client') ] // node_modules: 로컬만 사용 config.resolver.nodeModulesPaths = [ path.resolve(projectRoot, 'node_modules') ] // packages 내에서 import하는 모든 모듈을 로컬 node_modules로 강제 config.resolver.extraNodeModules = new Proxy( {}, { get: (_target, name) => { return path.resolve(projectRoot, 'node_modules', String(name)) } } ) module.exports = config