Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
babel-preset-react-app
Advanced tools
babel-preset-react-app is a Babel preset that is used in Create React App projects. It includes a set of Babel plugins and configurations optimized for React applications, ensuring compatibility with the latest JavaScript features and JSX syntax.
JSX Syntax Transformation
Transforms JSX syntax into JavaScript. This allows you to write HTML-like syntax in your JavaScript files, which is then converted to React.createElement calls.
const element = <h1>Hello, world!</h1>;
ES6+ Syntax Transformation
Transforms modern JavaScript syntax (ES6+) into a version of JavaScript that is compatible with older browsers. This includes features like arrow functions, template literals, destructuring, etc.
const sum = (a, b) => a + b;
Class Properties
Allows the use of class properties syntax in React components, making it easier to define state and methods without needing a constructor.
class MyComponent extends React.Component { state = { count: 0 }; }
Optional Chaining
Enables the use of optional chaining, which allows you to safely access deeply nested properties without having to check if each reference in the chain is null or undefined.
const name = user?.profile?.name;
babel-preset-env is a smart preset that allows you to use the latest JavaScript without needing to micromanage which syntax transforms (and optionally, browser polyfills) are needed by your target environment(s). It is more general-purpose compared to babel-preset-react-app, which is specifically optimized for React applications.
babel-preset-react is a Babel preset that includes plugins for transforming JSX and React-specific syntax. While it provides similar functionality to babel-preset-react-app, it does not include the additional optimizations and configurations tailored for Create React App projects.
babel-preset-typescript is a Babel preset that allows Babel to transform TypeScript code into JavaScript. It is useful for projects that use TypeScript, whereas babel-preset-react-app is focused on JavaScript and JSX transformations.
This package includes the Babel preset used by Create React App.
Please refer to its documentation:
The easiest way to use this configuration is with Create React App, which includes it by default. You don’t need to install it separately in Create React App projects.
If you want to use this Babel preset in a project not built with Create React App, you can install it with the following steps.
First, install Babel.
Then install babel-preset-react-app.
npm install babel-preset-react-app --save-dev
Then create a file named .babelrc
with following contents in the root folder of your project:
{
"presets": ["react-app"]
}
This preset uses the useBuiltIns
option with transform-object-rest-spread and transform-react-jsx, which assumes that Object.assign
is available or polyfilled.
Make sure you have a .flowconfig
file at the root directory. You can also use the flow
option on .babelrc
:
{
"presets": [["react-app", { "flow": true, "typescript": false }]]
}
Make sure you have a tsconfig.json
file at the root directory. You can also use the typescript
option on .babelrc
:
{
"presets": [["react-app", { "flow": false, "typescript": true }]]
}
Absolute paths are enabled by default for imports. To use relative paths instead, set the absoluteRuntime
option in .babelrc
to false
:
{
"presets": [["react-app", { "absoluteRuntime": false }]]
}
FAQs
Babel preset used by Create React App
The npm package babel-preset-react-app receives a total of 2,745,979 weekly downloads. As such, babel-preset-react-app popularity was classified as popular.
We found that babel-preset-react-app demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.