-
Notifications
You must be signed in to change notification settings - Fork 24.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[metro-config] add InitializeCore in getModulesRunBeforeMainModule #38207
Conversation
Base commit: 62e9fae |
@huntie has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for making this change upstream @Kudo! Small nit then we'll ship this 👍🏻
Co-authored-by: Alex Hunt <hello@alexhunt.io>
@huntie has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
This pull request was successfully merged by @Kudo in 0ccbd65. When will my fix make it into a release? | Upcoming Releases |
Summary: the `IntializeCore` is critical to react-native for setup polyfills. without this, we would have some erros like undefined `global.performance`. since the effort is now proposing `react-native/metro-config` as universal metro-config, it is better to have the `IntializeCore` in it. we ran into issues when using expo-cli in bare react-native projects. it happens when using [the default metro config](https://github.com/facebook/react-native/blob/5f84d7338f42fe9b1d5bf2a9b1c8321b59551f15/packages/react-native/template/metro.config.js) and starting metro server without the react-native-community-cli. ### Why the issue does not happen on `yarn react-native start`? when using `yarn react-native start`, the react-native-community-cli will merge its internal metro-config with the `InitializeCore` ([https://github.com/facebook/react-native/issues/1](https://github.com/react-native-community/cli/blob/5d8a8478cd104adf4a4dd34c09c2e256325ae61d/packages/cli-plugin-metro/src/commands/start/runServer.ts#L56), [https://github.com/facebook/react-native/issues/2](https://github.com/react-native-community/cli/blob/e8e7402512da8c3fbbc58a195284ef0008c7491f/packages/cli-plugin-metro/src/tools/loadMetroConfig.ts#L51-L61)). that's why the issue doesn't happen on react-native-community-cli. ## Changelog: [GENERAL][FIXED] - `global.performance` in undefined when starting metro from Expo CLI Pull Request resolved: #38207 Test Plan: ```sh $ npx react-native init RN072 --version 0.72 $ cd RN072 $ yarn add expo $ npx expo run:ios # then it hits the exception because the global.performance is undefined. ``` Reviewed By: rshest Differential Revision: D47257439 Pulled By: huntie fbshipit-source-id: ae294e684047e503d674f0c72563b56d1803ba36
Summary:
the
IntializeCore
is critical to react-native for setup polyfills. without this, we would have some erros like undefinedglobal.performance
. since the effort is now proposing@react-native/metro-config
as universal metro-config, it is better to have theIntializeCore
in it.we ran into issues when using expo-cli in bare react-native projects. it happens when using the default metro config and starting metro server without the react-native-community-cli.
Why the issue does not happen on
yarn react-native start
?when using
yarn react-native start
, the react-native-community-cli will merge its internal metro-config with theInitializeCore
(#1, #2). that's why the issue doesn't happen on react-native-community-cli.Changelog:
[GENERAL][FIXED] -
global.performance
in undefined when starting metro from Expo CLITest Plan: