diff --git a/native/.babelrc.cjs b/native/.babelrc.cjs --- a/native/.babelrc.cjs +++ b/native/.babelrc.cjs @@ -1,5 +1,5 @@ module.exports = { - presets: ['module:metro-react-native-babel-preset'], + presets: ['babel-preset-expo'], plugins: [ 'transform-remove-strict-mode', '@babel/plugin-proposal-optional-chaining', diff --git a/native/metro.config.js b/native/metro.config.js --- a/native/metro.config.js +++ b/native/metro.config.js @@ -1,31 +1,40 @@ /* eslint-disable flowtype/require-valid-file-annotation */ +const { getDefaultConfig } = require('expo/metro-config'); const path = require('path'); -module.exports = { - watchFolders: [ - path.resolve(__dirname, '../node_modules'), - path.resolve(__dirname, '../lib'), - ], +// Find the project and workspace directories +const projectRoot = __dirname; +// This can be replaced with `find-yarn-workspace-root` +const monorepoRoot = path.resolve(projectRoot, '../..'); - resolver: { - blockList: [/android[/\\].*/, /ios[/\\].*/], - }, +const config = getDefaultConfig(projectRoot); - server: { - enhanceMiddleware: middleware => (req, res, next) => { - // Fix Android dev mode asset resolution for yarn workspaces - req.url = req.url.replace(/^\/node_modules/, '/assets/../node_modules'); - return middleware(req, res, next); - }, - }, +config.watchFolders = [ + path.resolve(__dirname, '../node_modules'), + path.resolve(__dirname, '../lib'), +]; - transformer: { - getTransformOptions: async () => ({ - transform: { - experimentalImportSupport: false, - inlineRequires: true, - }, - }), - }, +config.resolver.blockList = [/android[/\\].*/, /ios[/\\].*/]; + +config.server.enhanceMiddleware = middleware => (req, res, next) => { + // Fix Android dev mode asset resolution for yarn workspaces + req.url = req.url.replace(/^\/node_modules/, '/assets/../node_modules'); + return middleware(req, res, next); }; + +config.transformer.getTransformOptions = async () => ({ + transform: { + experimentalImportSupport: false, + inlineRequires: true, + }, +}); + +config.resolver.nodeModulesPaths = [ + path.resolve(projectRoot, 'node_modules'), + path.resolve(monorepoRoot, 'node_modules'), +]; + +config.resolver.unstable_enablePackageExports = false; + +module.exports = config;