# @expo/metro-config

> A Metro config for running React Native projects with the Metro bundler

Latest version **57.0.12** (published 2026-08-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install @expo/metro-config
pnpm add @expo/metro-config
yarn add @expo/metro-config
bun add @expo/metro-config
```

## Health

**Score 80/100 (A)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score; popular repo; extremely popular.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 57.0.12 |
| Published | 2026-08-28 |
| First published | 2020-04-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 23 |
| Unpacked size | 975.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 52216 |
| Maintainers | ide, brentvatne, expoadmin, exponent, bycedric, kudochien, alanhughes, tsapeta, expo-bot, philpl, ccheever, wschurman |
| Keywords | expo, metro |

## Links

- npm: https://www.npmjs.com/package/@expo/metro-config
- Repository: https://github.com/expo/expo
- Homepage: https://github.com/expo/expo/tree/main/packages/@expo/metro-config#readme
- Issues: https://github.com/expo/expo/issues
- npm.io page: https://npm.io/package/@expo/metro-config

## Dependencies (23)

- [glob](https://npm.io/package/glob.md) ^13.0.0
- [chalk](https://npm.io/package/chalk.md) ^4.1.0
- [debug](https://npm.io/package/debug.md) ^4.3.2
- [getenv](https://npm.io/package/getenv.md) ^2.0.0
- [postcss](https://npm.io/package/postcss.md) ^8.5.14
- [@expo/env](https://npm.io/package/@expo/env.md) ~2.4.3
- [picomatch](https://npm.io/package/picomatch.md) ^4.0.4
- [@babel/core](https://npm.io/package/@babel/core.md) ^7.20.0
- [@expo/metro](https://npm.io/package/@expo/metro.md) ~56.0.2
- [@expo/config](https://npm.io/package/@expo/config.md) ~57.0.9
- [browserslist](https://npm.io/package/browserslist.md) ^4.25.0
- [jsc-safe-url](https://npm.io/package/jsc-safe-url.md) ^0.2.4
- [lightningcss](https://npm.io/package/lightningcss.md) ^1.30.1
- [resolve-from](https://npm.io/package/resolve-from.md) ^5.0.0
- [hermes-parser](https://npm.io/package/hermes-parser.md) ^0.36.0
- [@expo/json-file](https://npm.io/package/@expo/json-file.md) ~11.0.1
- [@babel/generator](https://npm.io/package/@babel/generator.md) ^7.20.5
- [@babel/code-frame](https://npm.io/package/@babel/code-frame.md) ^7.20.0
- [@expo/spawn-async](https://npm.io/package/@expo/spawn-async.md) ^1.8.0
- [@expo/require-utils](https://npm.io/package/@expo/require-utils.md) ^57.0.5
- [@jridgewell/remapping](https://npm.io/package/@jridgewell/remapping.md) ^2.3.5
- [@jridgewell/gen-mapping](https://npm.io/package/@jridgewell/gen-mapping.md) ^0.3.13
- [@jridgewell/sourcemap-codec](https://npm.io/package/@jridgewell/sourcemap-codec.md) ^1.5.5

## Recent versions

- 57.0.12 (latest) — 2026-08-28
- 58.0.1 (next) — 2026-09-14
- 58.0.0-canary-20260909-ea7a89a (canary) — 2026-09-09
- 56.0.19 (sdk-56) — 2026-08-28
- 55.0.27 (sdk-55) — 2026-08-25
- 54.0.17 (sdk-54) — 2026-07-15
- 56.0.14-canary-20260701-9100865 (canary-sdk-56) — 2026-07-01
- 55.0.10-canary-20260429-a5e59cf (canary-sdk-55) — 2026-04-29
- 0.20.18 (sdk-53) — 2025-12-11
- 0.18.4 (sdk-51) — 2024-05-16
- 0.17.6 (sdk-50) — 2024-03-07
- 0.1.57-alpha.0 (alpha) — 2021-03-03
- 58.0.0 — 2026-09-10
- 58.0.0-canary-20260902-26df09e — 2026-09-02
- 57.0.11 — 2026-08-26
- … 436 more at https://npm.io/package/@expo/metro-config/versions

## README

# `@expo/metro-config`

This package contains the default Metro config that is required for bundling apps with Expo CLI. Refer to the [Expo `metro.config.js` docs](https://docs.expo.dev/versions/latest/config/metro/) to learn more.

`metro.config.js`

```js
// Learn more https://docs.expo.io/guides/customizing-metro
const { getDefaultConfig } = require('expo/metro-config');

/** @type {import('expo/metro-config').MetroConfig} */
const config = getDefaultConfig(__dirname);

module.exports = config;
```

## Exotic

> As of SDK 51, the exotic transformer has been fully removed in favor of the default `@expo/metro-config` transformer. The export `@expo/metro-config/transformer` no longer exists.

Most of the [Exotic mode](https://blog.expo.dev/drastically-faster-bundling-in-react-native-a54f268e0ed1) performance benefits have been integrated in the default Expo CLI bundling pipeline (e.g. [less AST cloning](https://github.com/facebook/metro/pull/854), [faster worker creation](https://github.com/facebook/metro/pull/856)), and as such, the feature no longer needs to be enabled/disabled. Setting `mode: "exotic"` will no longer have any additional effects over the default.

Ensure you extend the `@expo/metro-config/babel-transformer` when customizing babel. Learn more: [Extending the Babel transformer](https://docs.expo.dev/versions/latest/config/metro/#extending-the-babel-transformer).

---
_Source: https://npm.io/package/@expo/metro-config · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
