Skip to content

Commit

Permalink
Drop internal base config merge in metro-config (#36777)
Browse files Browse the repository at this point in the history
Summary:
Pull Request resolved: #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 react-native-community/cli#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.

Differential Revision: D44630645

fbshipit-source-id: e85247b145e87d7bac9eca0bcb90e85e6fec98ae
  • Loading branch information
huntie authored and facebook-github-bot committed Apr 18, 2023
1 parent b6ba33a commit 94b1c99
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions packages/metro-config/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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(
[
Expand All @@ -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'],
Expand Down Expand Up @@ -76,11 +76,6 @@ function getDefaultConfig(
},
watchFolders: [],
};

return mergeConfig(
getBaseConfig.getDefaultValues(projectRoot),
config,
);
}

module.exports = {getDefaultConfig, mergeConfig};

0 comments on commit 94b1c99

Please sign in to comment.