TypeScript - Project References & Monorepos
Project references
// packages/a/tsconfig.json
{
  "compilerOptions": { "composite": true, "outDir": "dist", "rootDir": "src" },
  "include": ["src"]
}
// packages/b/tsconfig.json
{
  "references": [{ "path": "../a" }],
  "compilerOptions": { "composite": true, "outDir": "dist", "rootDir": "src" },
  "include": ["src"]
}
Build order
Use tsc -b (build mode) at the repo root to build in topological order and leverage incremental caches.
Monorepo tips
- Keep each package self-contained with its own tsconfig.
- Emit declarations for library packages.
- Use path aliases only when necessary; prefer relative imports across packages.