Skip to content

Instantly share code, notes, and snippets.

@sibelius
Created December 30, 2018 11:28
Show Gist options
  • Save sibelius/8ca62bab78ee9644ae5caffb9f1b1ef4 to your computer and use it in GitHub Desktop.
Save sibelius/8ca62bab78ee9644ae5caffb9f1b1ef4 to your computer and use it in GitHub Desktop.
Metro config to make react native play nice with monorepos
const path = require('path');
const getWorkspaces = require('get-yarn-workspaces');
const blacklist = require('metro-config/src/defaults/blacklist');
const workspaces = getWorkspaces(__dirname);
module.exports = {
projectRoot: path.resolve(__dirname, 'packages/app'),
watchFolders: [
path.resolve(__dirname, 'node_modules'),
...workspaces,
],
resolver: {
blacklistRE: blacklist(
workspaces.map(
workspacePath =>
`/${workspacePath.replace(
/\//g,
'[/\\\\]'
)}[/\\\\]node_modules[/\\\\]react-native[/\\\\].*/`
),
),
extraNodeModules: {
'react-native': path.resolve(__dirname, 'packages/app/node_modules/react-native'),
},
},
};
@sibelius
Copy link
Author

hope to keep working well for new versions

Copy link

ghost commented Jun 5, 2023

hey zachariahtimothy thank you for the link but it is broken for me, is there another for you to post?

@zachariahtimothy
Copy link

hey zachariahtimothy thank you for the link but it is broken for me, is there another for you to post?

Afraid not. I bailed on React Native a long time ago and have lived a happier, healthier life since. Hah. I love React but RN is an absolute nightmare.

@yberstad
Copy link

@zachariahtimothy, you made me curious, what have you changed to? 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment