Drop internal base config merge in metro-config (#36777)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/36777

Changelog: [Internal]

Remove internal merge of `getDefaultConfig` (Metro base defaults) from `react-native/metro-config`. This is unnecessary given the config loading setup of RN CLI and Expo CLI, which use (or replicate) Metro's [`loadConfig`](https://github.com/facebook/metro/blob/1e47cb5b3cc289530fb18e402891f9d2816611dd/packages/metro-config/src/loadConfig.js#L182-L190) function — which will itself apply defaults appropriately.

This relates to a previously-breaking behaviour documented in the test plan of https://github.com/react-native-community/cli/pull/1896 (independently fixed and no longer load-bearing) (**read: no need to cherry pick this change**).

https://pxl.cl/2B8NS

While this has no effect under the fixed RN CLI setup, this is a worthwhile simplification to this package that better-aligns with current Metro tooling expectations.

## Notes

- `getDefaultConfig` no longer returns `ConfigT` (full config), and instead returns `MetroConfig` (partial config). This is non-breaking with the expected API of a given `metro.config.js` file.

Reviewed By: cipolleschi

Differential Revision: D44630645

fbshipit-source-id: 472c3967449dfb99f845a82d9e9c49efc343021c
This commit is contained in:
Alex Hunt
2023-04-18 14:31:46 -07:00
committed by Facebook GitHub Bot
parent e2116d277d
commit 1c4a505c17
+4 -9
View File
@@ -8,9 +8,9 @@
* @noformat
*/
/*:: import type {ConfigT} from 'metro-config'; */
/*:: import type {MetroConfig} from 'metro-config'; */
const {getDefaultConfig: getBaseConfig, mergeConfig} = require('metro-config');
const {mergeConfig} = require('metro-config');
const INTERNAL_CALLSITES_REGEX = new RegExp(
[
@@ -37,8 +37,8 @@ const INTERNAL_CALLSITES_REGEX = new RegExp(
*/
function getDefaultConfig(
projectRoot /*: string */
) /*: ConfigT */ {
const config = {
) /*: MetroConfig */ {
return {
resolver: {
resolverMainFields: ['react-native', 'browser', 'main'],
platforms: ['android', 'ios'],
@@ -76,11 +76,6 @@ function getDefaultConfig(
},
watchFolders: [],
};
return mergeConfig(
getBaseConfig.getDefaultValues(projectRoot),
config,
);
}
module.exports = {getDefaultConfig, mergeConfig};