// Expo SDK 52+ сам настраивает Metro для монорепо (watchFolders, nodeModulesPaths). const path = require('node:path'); const { getDefaultConfig } = require('expo/metro-config'); const config = getDefaultConfig(__dirname); // watchFolders включает весь apps/mobile, а без watchman Metro обходит и хэширует каждый файл. // android/ и ios/ после prebuild содержат гигабайты промежуточных файлов Gradle/CMake — // в release-сборке Metro на них «висит». В JS-бандл из этих папок ничего не попадает. const escape = (p) => p.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); const nativeDirs = ['android', 'ios'].map((d) => new RegExp(`^${escape(path.join(__dirname, d) + path.sep)}.*`)); config.resolver.blockList = [...[].concat(config.resolver.blockList ?? []), ...nativeDirs]; module.exports = config;