123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /**
- * Metro configuration for React Native
- * https://github.com/facebook/react-native
- *
- * @format
- */
- const fs = require('fs');
- const path = require('path');
- const blacklist = require('metro-config/src/defaults/blacklist');
-
- const rnPath = fs.realpathSync(
- path.resolve(require.resolve('react-native/package.json'), '..'),
- );
- const rnwPath = fs.realpathSync(
- path.resolve(require.resolve('react-native-windows/package.json'), '..'),
- );
-
- module.exports = {
- resolver: {
- extraNodeModules: {
- // Redirect react-native to react-native-windows
- 'react-native': rnwPath,
- 'react-native-windows': rnwPath,
- },
- // Include the macos platform in addition to the defaults because the fork includes macos, but doesn't declare it
- platforms: ['ios', 'android', 'windesktop', 'windows', 'web', 'macos'],
- // Since there are multiple copies of react-native, we need to ensure that metro only sees one of them
- // This should go in RN 0.61 when haste is removed
- blacklistRE: blacklist([
- new RegExp(
- `${(path.resolve(rnPath) + path.sep).replace(/[/\\]/g, '/')}.*`,
- ),
-
- // This stops "react-native run-windows" from causing the metro server to crash if its already running
- new RegExp(
- `${path.resolve(__dirname, 'windows').replace(/[/\\]/g, '/')}.*`,
- ),
- // Avoid error EBUSY: resource busy or locked, open '...\vnext\msbuild.ProjectImports.zip' when building 'vnext\Microsoft.ReactNative.sln' with '/bl'
- /.*\.ProjectImports\.zip/,
- ]),
- },
- transformer: {
- getTransformOptions: async () => ({
- transform: {
- experimentalImportSupport: false,
- inlineRequires: false,
- },
- }),
- },
- };
|