# Typescript Monorepo

> Use when adding or changing packages/apps, TypeScript configs, workspace dependencies, package references, exports, or monorepo project-reference relationships.

- Skill: `pierrecomputer/typescript-monorepo` (Agent Skill)
- Install (CLI): `npx skillmds@latest add pierrecomputer/typescript-monorepo`
- Raw SKILL.md: https://api.skillmd.com/api/skills/pierrecomputer/typescript-monorepo/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: pierrecomputer (https://skillmd.com/u/pierrecomputer)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/pierrecomputer/typescript-monorepo

---


# TypeScript Monorepo

## TypeScript

Use TypeScript everywhere practical. Compiler settings are intentionally fairly
strict.

- Shared compiler options live in `tsconfig.options.json`.
- Root `tsconfig.json` manages project references across the monorepo.
- Typechecking uses `tsgo` and runs through moon: `moonx <project>:typecheck`
  (moon builds workspace dependencies first, since types resolve through each
  dependency's built dist).

## Project References

When adding a new package or app:

- Add it to the root `tsconfig.json` references.
- Ensure its local `tsconfig.json` follows existing package/app patterns.
- Give it a `moon.yml` (language, layer, tags, and any project-specific tasks);
  shared tasks come from `.moon/tasks/*.yml` via tags or project language.

When one workspace package depends on another:

- Add the dependency as `workspace:*` in the consuming package.
- Add the dependency to the consuming package's TypeScript `references` block
  when needed for accurate and fast typechecking.

## Workspace Dependencies

Use the `pnpm-workspace.yaml` catalog rules from `tooling-and-dependencies` for
external packages. Use `workspace:*` for internal package dependencies.

If a package is published, review its `exports`, `typesVersions`, `files`, peer
dependencies, and its moon `prepublish` task chain before changing public
entrypoints or dependency ranges.

