7210a060e6
Summary: The `env` option has been broken in Babel for a while (https://github.com/babel/babel/issues/4539), and will be deprecated (https://github.com/babel/babel/issues/5276). I am changing this code to the way Babel < 6.10 interpreted the `env` option. This should fix the `__source` JSX transform which was applied in DEV in the past, but stopped getting applied because of the Babel bug. I also changed the `filename` passed by Babel to be relative (currently, to `fbsource` but open to other options). This way DEV builds are still reproducible. This still needs some help from davidaurelio to make the root location more foolproof. I'd also appreciate zertosh taking a look in case there's a better way to "anchor" the relative path. All I need is to for `react-third-party/react-devtools/react-devtools` and `babelTransformer.js` to agree on what the relative path base is. Closes https://github.com/facebook/react-native/pull/13893 Reviewed By: gaearon Differential Revision: D5035892 Pulled By: davidaurelio fbshipit-source-id: 19ffeb867d7ed5928e9de05dcec9ba85bf961dd5 |
||
---|---|---|
.. | ||
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.