Edit this page
An overview of Expo tools and websites that will help you during various aspects of your project-building journey.
When you create a new project with Expo, learning about the following essential tools and websites can help you during your app development journey. This page provides an overview of a list of recommended tools.
Expo CLI is a development tool and is installed automatically with expo
package when you create a new project. You can use it by leveraging npx
(a Node.js package runner).
It is designed to help you move faster during the app development phase. For example, your first interaction with Expo CLI is starting the development server by running the command: npx expo start
.
The following is a list of common commands that you will use with Expo CLI while developing your app:
Command | Description |
---|---|
npx expo start | Starts the development server (whether you are using a development build or Expo Go). |
npx expo prebuild | Generates native Android and iOS directories using Prebuild. |
npx expo run:android | Compiles native Android app locally. |
npx expo run:ios | Compiles native iOS app locally. |
npx expo install package-name | Used to install a new library or validate and update specific libraries in your project by adding --fix option to this command. |
npx expo lint | Setup and configures ESLint. If ESLint is already configured, this command will lint your project files. |
In a nutshell, Expo CLI allows you to develop, compile, start your app, and more. See Expo CLI reference for more available options and actions you can perform with the CLI.
EAS CLI is used to log in to your Expo account and compile your app using different EAS services such as Build, Update, or Submit. You can also use this tool to:
To use EAS CLI, you need to install it globally on your local machine by running the command:
-
npm install -g eas-cli
You can use eas --help
in your terminal window to learn more about the available commands. For a complete reference, see eas-cli
npm page.
Expo Doctor is a command line tool used to diagnose issues in your Expo project. To use it, run the following command in your project's root directory:
-
npx expo-doctor
This command performs checks and analyzes your project's codebase for common issues in app config and package.json files, dependency compatibility, configuration files, and the overall health of the project. Once the check is complete, Expo Doctor outputs the results.
If Expo Doctor finds an issue, it provides a description of the problem along with advice on how to fix it or where to find help.
You can also use npx expo-doctor --help
to display usage information.
Orbit is a macOS and Windows app that enables:
You can download Orbit with Homebrew for macOS, or directly from the GitHub releases.
-
brew install expo-orbit
If you want Orbit to start when you log in automatically, click on the Orbit icon in the menu bar, then Settings and select the Launch on Login option.
Note: Orbit for Windows is in preview and is only compatible with x64 and x86 machines. Compatibility for other architectures will be added in the future.
You can download Orbit for Windows directly from the GitHub releases.
Orbit relies on the Android SDK on both macOS and Windows andxcrun
for device management only on macOS, which requires setting up both Android Studio and Xcode.
Expo Tools is a VS Code extension to improve your development experience when working with app config files. It provides features such as autocomplete and intellisense for files such as app config, EAS config, store config and Expo Module config files.
Use this link to install the extension or search Expo Tools directly in your VS Code editor.
You can also use it to debug your app using VS Code's built-in debugger to set breakpoints, inspect variables, execute code through the debug console, and more. See Debugging with VS Code for how to use this extension for debugging.
Snack is an in-browser development environment that works similarly to Expo Go. It's a great way to share code snippets and experiment with React Native without downloading any tools on your computer.
To use it, go to snack.expo.dev, edit the <Text>
component in App.js, choose a platform (Android, iOS, or web) in the right panel and see the changes live.
Expo Go is a free open-source, sandbox for learning and experimenting with React Native. It works with Android and iOS.
For more information on how to use it:
Note: Not recommended for building and distributing production apps to the app stores. Instead, use development builds.
When running a project that was created for an unsupported SDK version in Expo Go, you'll see the following error:
"Project is incompatible with this version of Expo Go"
To fix this, upgrading your project to a supported SDK version is recommended. If you want to learn how to do it, see Upgrade the project to a new SDK Version.
See Upgrading Expo SDK guide for instructions for upgrading to a specific SDK version.
Any library that is compatible with React Native works in an Expo project when you use a development build to create your project.
reactnative.directory is a searchable database for React Native libraries. If a library you are looking for is not included in Expo SDK, use the directory to find a compatible library for your project.
See this guide to learn more about the difference between React Native core libraries, Expo SDK libraries, and third-party libraries. It also explains how to determine third-party library compatibility.