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'),
},
},
};
@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