This is a minimal boilerplate to get started with Expo and tRPC in Turborepo.
This turborepo uses Yarn as a package manager. It includes the following packages/apps:
apps/mobile
: areact-native
app usingexpo
services/backend
: an express backend service which sets up thetrpc
server instanceconfig
:eslint
configurations (includeseslint-config-next
andeslint-config-prettier
)tsconfig
:tsconfig.json
s used throughout the monorepo
Each package/app is 100% TypeScript.
This turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Jest test runner for all things JavaScript
- Prettier for code formatting
The Expo app depends on a few things just like any other native app. Please make sure you have all the prerequisits for running an Expo app: https://docs.expo.dev/
To build all apps and packages, run the following command:
cd my-turborepo
yarn run build
I recommend starting Expo and other backend services in separate terminal window.
Start the backend server by running the dev
script in the root folder
yarn dev
In the other window, navigate to the mobile
folder and start Expo there.
cd apps/mobile
# pick one
yarn start
yarn ios
yarn android
If you explicitly want Expo to be started in the same window as the rest of your servers, just add a dev
script into apps/mobile/package.json
.
You'll lose some convenient things like the scannable QR code doing it this way.
Turborepo can use a technique known as Remote Caching (Beta) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.
By default, Turborepo will cache locally. To enable Remote Caching (Beta) you will need an account with Vercel. If you don't have an account you can create one, then enter the following commands:
cd my-turborepo
npx turbo login
This will authenticate the Turborepo CLI with your Vercel account.
Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your turborepo:
npx turbo link
Learn more about the power of Turborepo: