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 https://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 https://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