Development tasks#
Once you have a working development environment (see Setting up a development environment), you can run tasks to help you develop and test applications and packages in the Squareone monorepo. This page outlines those development tasks.
Start the development server#
You can spin up auto-reloading development versions of all the apps at once:
pnpm dev
Find the URLs for the apps in the output of the command, or:
View Squareone at http://localhost:3000.
API routes are accessed on
http://localhost:3000/api/*
. Thepages/api
directory is mapped to/api/*
. Files in this directory are treated as API routes instead of React pages. The purpose of thepages/api/dev
endpoints are to mock external services in the RSP; see the re-writes innext.config.js
.
Run a single app in development#
You can run a single app (e.g. Squareone) in development mode:
pnpm dev --filter squareone
Tip
Turbo Repo provides a powerful filtering syntax to let you run tasks on a subsets of app and packages, and their dependencies or dependents. Learn more in the Turbo Repo –filter documentation.
Manual linting and formatting#
Typically linting is run by your IDE while you develop and again when you commit code (via Husky). You can also manually lint and format code.
Lint JavaScript (e.g. with next lint for Next.js apps):
pnpm lint
Check formatting with Prettier:
pnpm format:check
Or automatically fix files with Prettier:
pnpm format
Create a production build#
You can create a production build of all applications and packages, which can be a useful check of a process that typically runs inside the Docker image build:
pnpm build
To build a specific application and its dependencies, use the --filter
flag:
pnpm build --filter squareone
Tip
Learn more about the filtering syntax in the Turbo Repo –filter documentation.
VS Code tasks#
Many of these tasks are also available as VS Code tasks.
From the VS Code command pallet run Tasks: Run Task
and select the task you want to run.