babel-preset-react
Babel preset for all React plugins.
This preset always includes the following plugins:
And with the development option:
Note: This preset sets the requireDirective option on
transform-flow-strip-types. This means Flow annotations and declarations
will only be removed in files that have a // @flow directive. It will also
throw errors for any Flow annotations found in files without the directive.
// @flow
function foo(numVal: number, strVal: string) {}
Install
You can also check out the React Getting Started page
For more info, check out the setup page on the cli and the usage docs.
Install the CLI and this preset
npm install --save-dev babel-cli babel-preset-react
Make a .babelrc config file with the preset
echo '{ "presets": ["react"] }' > .babelrc
Create a file to run on
echo '<h1>Hello, world!</h1>' > index.js
View the output
./node_modules/.bin/babel index.js
Usage
Via .babelrc (Recommended)
.babelrc
{
"presets": ["react"]
}
Via CLI
babel script.js --presets react
Via Node API
require("babel-core").transform("code", {
presets: ["react"]
});
Options
development
boolean, defaults to false.
Toggles plugins that aid in development, such as babel-plugin-transform-react-jsx-self and babel-plugin-transform-react-jsx-source.
This is useful when combined with either a babelrc.js or env option in a .babelrc configuration:
babelrc.js
module.exports = {
presets: [
["react", {
development: process.env.BABEL_ENV === "development"
}],
],
}
.babelrc
Note: the
envoption will likely get deprecated soon
{
"presets": ["react"],
"env": {
"development": {
"presets": [
["react", { "development": true }]
]
}
}
}