36893ecfa0
Summary:Since #5422 react-native works with strict mode modules but the transform was not updated since Facebook has some non strict mode compatible internal modules. Now that #5214 has landed and it is easy to change the babel config I think we should enable it by default to make es2015 modules spec compliant. Someone at Facebook will have to make the internal changes necessary to disable strict mode modules for their projects that use non strict mode compatible modules by including a .babelrc file with ``` json { "presets": [ "react-native" ], "plugins": [ ["transform-es2015-modules-commonjs", { "strict": false, "allowTopLevelThis": true }] ] } ``` before merging this. We might also want to mention this in the breaking change section for the next release. Closes https://github.com/facebook/react-native/pull/5796 Differential Revision: D3075802 fb-gh-sync-id: e807b67401107e1e944db38453e254025ce0a6c7 shipit-source-id: e807b67401107e1e944db38453e254025ce0a6c7 |
||
---|---|---|
.. | ||
configs | ||
lib | ||
transforms | ||
README.md | ||
index.js | ||
package.json | ||
plugins.js |
README.md
babel-preset-react-native
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 .babelrc
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 .babelrc
file.
Installation
Install babel-preset-react-native
in your app:
npm i babel-preset-react-native --save-dev
Configuring Babel
Then, create a file called .babelrc
in your project's root directory. The existence of this .babelrc
file will tell React Native to use your custom Babel configuration instead of its own. Then load this preset:
{
"presets": ["react-native"]
}
You can further customize your Babel configuration by specifying plugins and other options. See Babel's .babelrc
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.