Socket
Socket
Sign inDemoInstall

@babel/plugin-transform-react-inline-elements

Package Overview
Dependencies
78
Maintainers
4
Versions
71
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @babel/plugin-transform-react-inline-elements

Turn JSX elements into exploded React objects


Version published
Maintainers
4
Install size
1.57 MB
Created

Readme

Source

@babel/plugin-transform-react-inline-elements

Replaces the React.createElement function with one that is more optimized for production: babelHelpers.jsx.

Note

When used alongside transform-runtime, polyfills (by default including Symbol) are specifically scoped to not pollute the global scope. This breaks usage with React, as it won't have access to that polyfill and will cause your application to fail in legacy browsers.

Even if ['transform-runtime', { helpers: true, polyfill: false }] is specified, it might still break, since helpers come precompiled.

In this case, we recommend importing/requiring @babel/polyfill in the entry point of your application and using @babel/preset-env with the useBuiltIns option to only include the polyfills your targets need. Alternatively, you can also import/require core-js/modules/es6.symbol by itself.

This transform should be enabled only in production (e.g., just before minifying your code) because, although it improves runtime performance, it makes warning messages more cryptic and skips important checks that happen in development mode, including propTypes.

Example

In

<Baz foo="bar" key="1"></Baz>;

Out

babelHelpers.jsx(Baz, {
  foo: "bar"
}, "1");

/**
 * Instead of
 *
 * React.createElement(Baz, {
 *   foo: "bar",
 *   key: "1",
 * });
 */

Deopt

// The plugin will still use React.createElement when `ref` or `object rest spread` is used
<Foo ref="bar" />
<Foo {...bar} />

Installation

npm install --save-dev @babel/plugin-transform-react-inline-elements

Usage

.babelrc

{
  "plugins": ["@babel/transform-react-inline-elements"]
}

Via CLI

babel --plugins @babel/transform-react-inline-elements script.js

Via Node API

require("@babel/core").transform("code", {
  plugins: ["@babel/transform-react-inline-elements"]
});

References

  • [facebook/react#3228] Optimizing Compiler: Inline React Elements

Keywords

FAQs

Last updated on 03 Nov 2017

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc