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.
- packages/eslint-config: eslint configurations.
- packages/typescript-config: Typescript config's used throughout the monorepo.
To set up a local environment for development, first clone the repo and navigate to it in your console:
git clone https://github.com/balancer/frontend-monorepo.git && cd frontend-monorepo
Then create a local environment variable file for the frontend-v3
app.
cp apps/frontend-v3/.env.template apps/frontend-v3/.env.local
Install modules
pnpm install
Then spin up the dev environment with:
pnpm dev
The frontend-v3
app should be live at http://localhost:3000
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: