expo / atlas

Visualize React Native bundles to understand and optimize your app.

Home Page:https://docs.expo.dev/guides/analyzing-bundles/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Expo Atlas

Inspect your Metro bundle, on module level.

Warning

This project is unstable and might not work for your project.

πŸš€ How to use it

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 the atlas.jsonl file.

Using $ expo start

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 start

Tip

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.

Using $ expo export

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.jsonl

πŸ›οΈ Project structure

πŸ§‘β€πŸ’» Contributing to Atlas

Atlas is open source and contributions are welcome.

πŸ—οΈ Preparing the repository

  • Clone this repository
  • $ bun install β€” Atlas uses Bun's package manager, ensure you have it installed

🎨 Changing the Atlas UI

If you need to change anything related to the Atlas UI, you need to:

πŸ“Š Changing the Atlas data

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

πŸ“¦ Releasing a new version

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

About

Visualize React Native bundles to understand and optimize your app.

https://docs.expo.dev/guides/analyzing-bundles/


Languages

Language:TypeScript 92.4%Language:CSS 4.9%Language:JavaScript 2.1%Language:HTML 0.7%