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.