123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /**
- * This cli config is needed for the coexistance of react-native and other
- * out-of-tree implementations such react-native-macos.
- * The following issue is tracked by
- * https://github.com/react-native-community/discussions-and-proposals/issues/182
- *
- * The work-around involves having a metro.config.js for each out-of-tree
- * platform, i.e. metro.config.js for react-native and
- * metro.config.macos.js for react-native-macos.
- * This react-native.config.js looks for a --use-react-native-macos
- * switch and when present pushes --config=metro.config.macos.js
- * and specifies reactNativePath: 'node_modules/react-native-macos'.
- * The metro.config.js has to blacklist 'node_modules/react-native-macos',
- * and conversely metro.config.macos.js has to blacklist 'node_modules/react-native'.
- */
- 'use strict';
-
- const path = require('path');
-
- const macSwitch = '--use-react-native-macos';
- const windowsSwitch = '--use-react-native-windows';
-
- if (process.argv.includes(macSwitch)) {
- process.argv = process.argv.filter(arg => arg !== macSwitch);
- process.argv.push('--config=metro.config.macos.js');
- module.exports = {
- reactNativePath: 'node_modules/react-native-macos',
- };
- }
- else if (process.argv.includes(windowsSwitch)) {
- process.argv = process.argv.filter(arg => arg !== windowsSwitch);
- process.argv.push('--config=metro.config.windows.js');
- module.exports = {
- reactNativePath: 'node_modules/react-native-windows',
- };
- }
- else {
- module.exports = {
- project: {
- ios: {
- project: 'example/ios/',
- },
- android: {
- sourceDir: 'example/android',
- },
- },
- };
- }
|