Inspect your Metro bundle, on module level.
Atlas is built into Expo starting from SDK 51, and enabled when defining the environment variable EXPO_UNSTABLE_ATLAS=true.
You can use Atlas with two Expo commands:
$ expo start→ Start a local dev server, Atlas will listen to any change within your project.$ expo export→ Export your app to Android, iOS, or web. Atlas will generate theatlas.jsonlfile.
When enabling Atlas with the local dev server, you can access Atlas on http://localhost:8081/_expo/atlas. This shows you all information from the bundle loaded during development.
$ EXPO_UNSTABLE_ATLAS=true npx expo startTip
Expo start runs in development mode by default. If you want to see a production bundle of your app, you can start the local dev server in production mode: $ expo start --no-dev.
When enabling Atlas during exports, Expo generates the .expo/atlas.json file in your project. This file contains all bundle information, including the actual source code of individual files. You can open the Atlas file through npx expo-atlas [path/to/atlas.jsonl].
# Export the app for all platforms
$ EXPO_UNSTABLE_ATLAS=true npx expo export --platform all
# Open Atlas using the default `.expo/atlas.jsonl` path
$ npx expo-atlas
# Open Atlas from a shared file
$ npx expo-atlas ./path/to/atlas.jsonlapps/example— A default Expo project, with Atlas enabled by defaultpackages/expo-atlas— The core package of Atlas, including Metro data handling and the CLI commandpackages/expo-atlas-ui— The web-only Expo project representing the UI of Atlas
Atlas is open source and contributions are welcome.
- Clone this repository
$ bun install— Atlas uses Bun's package manager, ensure you have it installed
If you need to change anything related to the Atlas UI, you need to:
$ bun start— This builds expo-atlas and starts expo-atlas-ui with a default fixture$ open http://localhost:8081— To view expo-atlas-ui in your browser- Make any change in expo-atlas-ui
If you need to change anything related to extracting data from Metro, you need to:
$ cd packages/expo-atlas— Make the changes in expo-atlas$ bun start— Build expo-atlas on any change- Open another terminal
$ cd apps/example— Atlas has a default Expo project to experiment with$ bun start— The example project automatically enables Atlas through apps/example/.env$ bun expo export— The example project can also export an .expo/atlas.jsonl file$ bun expo-atlas— When exporting an .expo/atlas.jsonl file, you can open Atlas using this export
If you need to release a new version of Atlas, you need to:
- Make sure you have no uncomitted changes and have checked out main
- Update the package version in expo-atlas/package.json
- Commit the new version to main
$ bun install— Make sure to install all dependencies$ bun run build— Build both expo-atlas and expo-atlas-ui$ cd packages/expo-atlas && npm publish— Release a new version of Atlas
with ❤️ Expo