README.md 1.77 KB
Newer Older
1
2
# babel-preset-react-app

3
This package includes the Babel preset used by [Create React App](https://github.com/facebook/create-react-app).<br>
Dan Abramov's avatar
Dan Abramov committed
4
5
Please refer to its documentation:

6
7
* [Getting Started](https://github.com/facebook/create-react-app/blob/master/README.md#getting-started) – How to create a new app.
* [User Guide](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md) – How to develop apps bootstrapped with Create React App.
8
9
10

## Usage in Create React App Projects

11
The easiest way to use this configuration is with [Create React App](https://github.com/facebook/create-react-app), which includes it by default. **You don’t need to install it separately in Create React App projects.**
12
13
14

## Usage Outside of Create React App

Dan Abramov's avatar
Dan Abramov committed
15
If you want to use this Babel preset in a project not built with Create React App, you can install it with following steps.
16
17
18

First, [install Babel](https://babeljs.io/docs/setup/).

19
20
21
22
23
24
Then install babel-preset-react-app.

```sh
npm install babel-preset-react-app --save-dev
```

25
26
Then create a file named `.babelrc` with following contents in the root folder of your project:

27
28
29
30
31
```js
{
  "presets": ["react-app"]
}
```
32
33

This preset uses the `useBuiltIns` option with [transform-object-rest-spread](http://babeljs.io/docs/plugins/transform-object-rest-spread/) and [transform-react-jsx](http://babeljs.io/docs/plugins/transform-react-jsx/), which assumes that `Object.assign` is available or polyfilled.
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

## Usage with TypeScript

To use this package with [`@babel/preset-typescript`](https://www.npmjs.com/package/@babel/preset-typescript), you need to disable `@babel/preset-flow` first.

You can achieve this by doing:

```
{
  "presets": [
    ["react-app", {
        "flow": false
    }],
    "@babel/typescript"
  ]
}
```