Files
forkmessager/client-mobile/metro.config.js
T

30 lines
1.0 KiB
JavaScript

const { getDefaultConfig } = require('expo/metro-config');
const path = require('path');
const projectRoot = __dirname;
const workspaceRoot = path.resolve(projectRoot, '..');
const config = getDefaultConfig(projectRoot);
// 1. Keep the project root to the current folder to ensure assets are found correctly
config.projectRoot = projectRoot;
// 2. Watch all files within the monorepo for changes
config.watchFolders = [workspaceRoot];
// 3. Explicitly tell Metro where to look for modules
// We prioritize local node_modules, then workspace node_modules
config.resolver.nodeModulesPaths = [
path.resolve(projectRoot, 'node_modules'),
path.resolve(workspaceRoot, 'node_modules'),
];
// 4. Force resolution of React and React Native
config.resolver.extraNodeModules = {
'react': path.resolve(projectRoot, 'node_modules/react'),
'react-native': path.resolve(projectRoot, 'node_modules/react-native'),
'@react-native/assets-registry': path.resolve(projectRoot, 'node_modules/@react-native/assets-registry'),
};
module.exports = config;