Summary: See https://github.com/facebook/react-native/issues/41929 for an issue on multiple monorepo packages being installed. The reason is that `*` resolves to whatever is tagged `latest` on npm. We still need to fix the fact that our monorepo publish script will update the latest tag everytime we publish. For now, we should remove these from `main` and we will also update this in the 0.73 release branch. I've left the two peer dependencies on `react-native` to keep at `*`. ``` virtualized-lists/package.json 30: "react-native": "*" rn-tester/package.json 32: "react-native": "*" ``` As a peer-dependency this won't be a problem in terms of installing a second `react-native`. I thought about updating these to `nightly`, but that would install multiple nightly react-natives as the tag will be updated with each nightly release. I think for now this is fine and something we can revisit. Things left to do [ ] Fix monorepo publish script to not update `--latest` [ ] Remove ^ dependencies on monorepo packages: https://github.com/facebook/react-native/pull/41958 [ ] Re-evaluate how we bump and align monorepo packages when we cut a release branch. I forget if we manually update this when we cut or if there is a script. We may want to change the script and have `main` dependencies point to some fake version like `1000.0.0` and only update these on nightly publishes. Regardless, this will need some discussion. ## Changelog: [GENERAL] [CHANGED] - Be explicit about what monorepo versions we are using Pull Request resolved: https://github.com/facebook/react-native/pull/42081 Test Plan: N/A Reviewed By: cortinico, cipolleschi Differential Revision: D52435234 Pulled By: lunaleaps fbshipit-source-id: 67da029d2b637e3997c12c21fe2a9ab9bc344399
@react-native/babel-preset
Babel presets for React Native applications. React Native itself uses this Babel preset by default when transforming your app's source code.
If you wish to use a custom Babel configuration by writing a babel.config.js file in your project's root directory, you must specify all the plugins necessary to transform your code. React Native does not apply its default Babel configuration in this case. So, to make your life easier, you can use this preset to get the default configuration and then specify more plugins that run before it.
Usage
As mentioned above, you only need to use this preset if you are writing a custom babel.config.js file.
Installation
Install @react-native/babel-preset in your app:
with npm:
npm i @react-native/babel-preset --save-dev
or with yarn:
yarn add -D @react-native/babel-preset
Configuring Babel
Then, create a file called babel.config.js in your project's root directory. The existence of this babel.config.js file will tell React Native to use your custom Babel configuration instead of its own. Then load this preset:
{
"presets": ["module:@react-native/babel-preset"]
}
You can further customize your Babel configuration by specifying plugins and other options. See Babel's babel.config.js documentation to learn more.
Help and Support
If you get stuck configuring Babel, please ask a question on Stack Overflow or find a consultant for help. If you discover a bug, please open up an issue.