Socket
Socket
Sign inDemoInstall

metro-react-native-babel-preset

Package Overview
Dependencies
133
Maintainers
2
Versions
100
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    metro-react-native-babel-preset

Babel preset for React Native applications


Version published
Weekly downloads
2M
increased by1.76%
Maintainers
2
Install size
15.6 MB
Created
Weekly downloads
 

Package description

What is metro-react-native-babel-preset?

The metro-react-native-babel-preset package is a Babel preset for React Native applications. It includes the Babel plugins and configurations necessary to compile JavaScript code in a way that is compatible with the React Native platform. This preset helps developers by abstracting the complex Babel configurations required for React Native development.

What are metro-react-native-babel-preset's main functionalities?

Transform JSX

This code sample demonstrates how JSX is transformed into JavaScript that React Native can understand. The metro-react-native-babel-preset handles the necessary transformations behind the scenes.

import React from 'react';
import { View, Text } from 'react-native';

function MyComponent() {
  return (
    <View>
      <Text>Hello, world!</Text>
    </View>
  );
}

ESNext Features

This code sample shows the use of class properties, an ESNext feature. The preset allows developers to write modern JavaScript by transpiling features that are not natively supported by the React Native JavaScript engine.

class MyComponent extends React.Component {
  state = { greeting: 'Hello' };

  render() {
    return <Text>{this.state.greeting}, world!</Text>;
  }
}

Module Resolution

This code sample illustrates module resolution. The preset configures Babel to resolve modules in a way that is compatible with the Metro bundler used by React Native.

import myModule from 'my-module';

Other packages similar to metro-react-native-babel-preset

Readme

Source

metro-react-native-babel-preset

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 babel.config.js 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 babel.config.js file.

Installation

Install metro-react-native-babel-preset in your app:

with npm:

npm i metro-react-native-babel-preset --save-dev

or with yarn:

yarn add -D metro-react-native-babel-preset

Configuring Babel

Then, create a file called babel.config.js in your project's root directory. The existence of this babel.config.js file will tell React Native to use your custom Babel configuration instead of its own. Then load this preset:

{
  "presets": ["module:metro-react-native-babel-preset"]
}

You can further customize your Babel configuration by specifying plugins and other options. See Babel's babel.config.js 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.

Keywords

FAQs

Last updated on 06 Jul 2023

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