This project uses pnpm
, if you haven't already installed it you can find the documentation here:
https://pnpm.io/installation
The monorepo uses pnpm workspaces along with Turborepo to manage build orchestration, to learn more about Turborepo please see the docs.
This monorepo includes the following apps & packages:
- apps/frontend-v3: The official web app for the Balancer protocol, hosted at https://balancer.fi.
- apps/beets-frontend-v3: The (still in development) web app for the Beets protocol.
- packages/lib: Shared logic for all frontend-v3 apps.
- packages/eslint-config: eslint configurations.
- packages/typescript-config: Typescript config's used throughout the monorepo.
Click on the links below to see the README for each app:
To build all apps and packages, run the following command:
pnpm build
To test all apps and packages, run:
pnpm test:unit
// or
pnpm test:integration
If you want to install a new npm package in a sub application like frontend-v3
add the --filter
option to your install command, e.g.:
pnpm add some-pkg --filter=frontend-v3
This filter should match the name
attribute in the app or package package.json.
Turborepo can use a technique known as Remote Caching 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 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: