This is a barebones starter for a monorepo of single-spas using turborepo to manage taskrunning and monorepo management, with Vite implemented to run dev and build workflows.
This turborepo uses Yarn as a package manager. It is originally bbased on the Turborepo starter package available here It includes the following packages/apps:
react-app-1
: a react application wrapped as a single-spa appreact-app-2
: a duplicate react application wrapped as a single-spa appvue-app-1
: a vue application wrapped as a single-spa-approot-config
: a single-spa root-config for rendering and testing single-spa's in local development. Based on: https://github.com/joeldenning/vite-single-spa-root-configconfig
:eslint
configurations (includeseslint-config-next
andeslint-config-prettier
)tsconfig
:tsconfig.json
s used throughout the monorepo
Each package/app is 100% TypeScript. With the exception of the root-config. This is pure JS due to currently unresolved issues rendering vite es6 modules in a 100% typescript environment
This turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
Clone and run yarn
to install deps
To build all apps and packages, run the following command:
yarn run build
To develop all apps and packages, run the following command:
yarn run dev
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:
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: