# What changed in @expo/metro-config

> 14 changes in @expo/metro-config 54 to 58 from its official release notes, upgrade guides and advisories: 1 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/npm/@expo/metro-config/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @expo/metro-config 58

### New APIs and options

- Provides process metadata, such as port, for commands like expo start. (58.0.13) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.13)

### Performance

- Client bundles avoid an unnecessary noxcturnal bailout for modules with this directive. (58.0.15) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.15)

### Behavior and default changes

- The default Noxcturnal React Compiler panic threshold is now none, matching babel-plugin-react-compiler. (58.0.16) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.16)

### Tooling

- Adds an asset transformer through Noxcturnal for this experiment. (58.0.16) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.16)
- The transform worker update improves Flow erasure support and React Compiler transforms, with a slight performance improvement. (58.0.15) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.15)
- Adds experimental granular bundle splitting for production exports with async routes. (58.0.12) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.12)

### Fixes and other changes

- Babel transforms use the bundle's mode instead of the process BABEL_ENV. (58.0.16) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.16)
- Noxcturnal diagnostic filenames resolve correctly when Metro runs from a workspace root. (58.0.16) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.16)
- Noxcturnal plugins resolve project-relative filenames against the app root while preserving project-relative module IDs. (58.0.16) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.16)
- Fixes edge cases resolving root dependencies for expo-router, react-native/setup-env, and expo/build/winter. (58.0.13) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.13)
- Stack frames inside node_modules are no longer all collapsed, so errors point to where they were thrown. (58.0.8) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.8)
- Bundled, external, and inline stylesheet order is preserved across static and server rendering. (58.0.8) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.8)
- Keeps EXPO_ROUTER_IMPORT_MODE synchronous in server bundles when async routes are enabled, matching babel-preset-expo. (58.0.7) — [release notes](https://github.com/expo/expo/releases/tag/%40expo/metro-config%4058.0.7)

## @expo/metro-config 54

### Fixes and other changes

- Stack frames for InternalBytecode.js are collapsed, changing how stack traces appear. (54.0.0) — [release notes](https://github.com/expo/expo/blob/HEAD/packages/@expo/metro-config/CHANGELOG.md)
