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:
After configuring storage, run pending-upload cleanup with:
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.