ForgeTS uses a monorepo structure managed by pnpm workspaces.
.
├── packages/ # Shared packages and libraries
│ ├── cli/ # The main CLI tool
│ └── ...
├── apps/ (Optional) # Deployable applications
├── docs/ # Documentation
└── scripts/ # Repository maintenance scripts
We define our workspaces in pnpm-workspace.yaml.
This allows us to:
- Hoist shared dependencies (like React, TypeScript) to the root
node_modulesto save space. - Link packages locally so changes in one package are immediately available to others.
pnpm --filter @forge-ts/cli add lodashpnpm add -w -D typescriptpnpm -r run build