Skip to content

Commands

All commands run from the repository root unless noted.

Root scripts

These are the root scripts currently provided by package.json.

Command Purpose
pnpm dev Start the API and MailDev inbox/SMTP server
pnpm dev:ui Start the interactive Vite client on port 3000
pnpm dev:mail Start the React Email preview on port 3002
pnpm build Build the client and compile the server
pnpm start Run the compiled server
pnpm typecheck Generate route types and check all packages
pnpm check Check formatting and lint rules
pnpm format Apply formatting and safe lint fixes
pnpm test Run unit tests followed by API integration tests
pnpm test:unit Run all tests in tests/unit/
pnpm test:integration Run all tests in tests/integration/
pnpm test:e2e Run Playwright tests in Chromium
pnpm test:e2e:ui Open Playwright's interactive test UI
pnpm db:up / pnpm db:down Start or stop local MongoDB
pnpm docker:up / pnpm docker:down Build/start or stop the complete stack

Per-package scripts

Package-level commands are useful when working on one workspace:

pnpm --filter @mern/client generate-routes

After configuring storage, run pending-upload cleanup with:

pnpm --filter @mern/server uploads:cleanup

This deletes expired pending objects and metadata from the configured bucket and database. See Cron jobs for prerequisites, scheduling, and the expected summary.

Test databases

Integration tests create and delete a random mern_test_* database. E2E tests use a random mern_e2e_* database. Both need permission to create and drop temporary databases and never use the application database.

References