pnpm-workspaces met TypeScript
Configureer een monorepo met pnpm en een gedeelde tsconfig.
pnpm-workspaces met TypeScript is een gratis TypeScript Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject TypeScript Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus TypeScript Academy bevat in totaal 4 lessen.
Wat zijn pnpm-werkruimten?
Met pnpm-werkruimten kun je meerdere pakketten in één repository beheren met een gedeelde node_modules-structuur. Dit vermindert schijfgebruik en maakt imports tussen pakketten mogelijk.
# pnpm-workspace.yaml
packages:
- "packages/*"
- "apps/*"De werkruimtestructuur maken
Een typische pnpm-monorepo heeft packages/ voor gedeelde bibliotheken en apps/ voor uitrolbare applicaties.
monorepo/
├── pnpm-workspace.yaml
├── package.json # root
├── packages/
│ ├── core/ # shared logic
│ └── ui/ # shared components
└── apps/
└── web/ # Next.js appRoot tsconfig.json
De hoofd-tsconfig stelt basisopties in en verwijst naar alle werkruimtepakketten.
{
"compilerOptions": {
"strict": true,
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler"
},
"references": [
{ "path": "packages/core" },
{ "path": "packages/ui" },
{ "path": "apps/web" }
]
}tsconfig op pakketniveau
Elk pakket breidt de hoofdconfiguratie uit en stelt zijn eigen composite en outDir in.
// packages/core/tsconfig.json
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"composite": true,
"outDir": "./dist",
"rootDir": "./src"
}
}Afhankelijkheden tussen pakketten installeren
Gebruik pnpm add met het werkruimteprotocol om pakketten binnen de monorepo aan elkaar te koppelen.
# Add @myapp/core to apps/web
pnpm add @myapp/core --workspace --filter apps/web
# package.json entry:
# "@myapp/core": "workspace:*"TypeScript-padresolutie
Voeg aliassen voor paths toe aan de hoofd-tsconfig, zodat TypeScript werkruimtepakketten tijdens de ontwikkeling naar hun broncode oplost.
{
"compilerOptions": {
"paths": {
"@myapp/core": ["./packages/core/src/index.ts"],
"@myapp/ui": ["./packages/ui/src/index.ts"]
}
}
}Alle pakketten bouwen
Gebruik tsc --build vanuit de hoofdmap om alle samengestelde pakketten in afhankelijkheidsvolgorde te bouwen.
# Build all
tsc --build
# Or with pnpm recursive script:
pnpm -r buildScripts in meerdere pakketten uitvoeren
pnpm -r (recursief) of --filter voert scripts uit in alle overeenkomende pakketten.
# Run tests in all packages
pnpm -r test
# Run only in packages/core
pnpm --filter @myapp/core testGedeelde configuratie voor ESLint en Prettier
Houd lintconfiguraties in een gedeeld pakket en breid ze in elk pakket uit, zodat de codestijl in de hele monorepo consistent blijft.
// packages/eslint-config/index.js
module.exports = { extends: ["airbnb-typescript"], ... };Integratie met Turborepo
Voeg Turborepo toe om bouw-, test- en linttaken te cachen en te parallelliseren, waarbij de pnpm-werkruimtegrafiek de afhankelijkheidsvolgorde bepaalt.
npx create-turbo@latest
# or add to existing monorepo:
pnpm add turbo -wSamenvatting: pnpm-werkruimten met TypeScript
pnpm-werkruimten en TypeScript-projectreferenties vormen samen een krachtige monorepo-opzet: een gedeelde node_modules, imports tussen pakketten via workspace:* en snelle compilaties met tsc --build.
Korte controle
Welk bestand bepaalt welke mappen pnpm-werkruimtepakketten zijn?
Wat je hebt geleerd
pnpm-werkruimten met TypeScript-projectreferenties geven je een efficiënte monorepo met een gedeelde node_modules, koppeling tussen pakketten via het werkruimteprotocol en incrementele compilaties. Voeg Turborepo toe voor caching en parallellisatie.
Leer TypeScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 101
- Lessen
- 352
Veelgestelde vragen
Is de les “pnpm-workspaces met TypeScript” gratis?
Ja — de volledige tekst van “pnpm-workspaces met TypeScript” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus TypeScript Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus TypeScript Academy bevat in totaal 4 lessen.
Wat leer ik in “pnpm-workspaces met TypeScript”?
Configureer een monorepo met pnpm en een gedeelde tsconfig. Je oefent met TypeScript Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met TypeScript Academy te beginnen?
Ervaring vooraf is niet nodig. TypeScript Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “pnpm-workspaces met TypeScript”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over TypeScript Academy?
Ja. Elke les over TypeScript Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- TypeScript-projectreferenties uitgelegd
- pnpm-workspaces met TypeScript
- Strategie voor een pakket met gedeelde typen
- Incrementele builds en cache in monorepo's