react-native/babel-preset
Peter van der Zee 7014a30baa Upgrade babel to beta.47 across xplat
Summary:
Upgrade Babel from beta.40 to beta.47

There are two important breaking changes here.

- If you want an AST from the Babel `transform` functions you must pass on `ast:true` in the options.
- The `sourceType` is now the only source of truth on whether to parse with the Script or Module goal. It defaults to `script` and can also be `module` or `unambiguous`. In the `unambiguous` case it will first try to parse with the Module goal and only if it crashes it will try again with the Script goal.

Beyond that there were some fixes and some smaller changes that may affect you. See the Babel changelogs for details (https://github.com/babel/babel/tags).

Also updated the way we generate the babel helpers file.

Reviewed By: rubennorte

Differential Revision: D8075280

fbshipit-source-id: 2bb902690e8a4b19d9cada2b7b0c94812b3d4f0f
2018-05-23 06:16:01 -07:00
..
configs
lib
transforms Prettier the rest of ReactNative 2018-05-11 13:52:30 -07:00
README.md
index.js Prettier the rest of ReactNative 2018-05-11 13:52:30 -07:00
package.json Upgrade babel to beta.47 across xplat 2018-05-23 06:16:01 -07:00
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.