Projectarchitectuur
Overzicht van de monorepo-werkruimtestructuur en pakketgrenzen van LibreChat.
Monorepo-structuur
LibreChat is georganiseerd als een monorepo met duidelijk gedefinieerde werkruimtegrenzen:
| Workspace | Taal | Kant | Afhankelijkheid | Doel |
|---|---|---|---|---|
/api | JS (legacy) | Backend | packages/api, packages/data-schemas, packages/data-provider, @librechat/agents | Express server — minimaliseer wijzigingen hier |
/packages/api | TypeScript | Backend | packages/data-schemas, packages/data-provider | Nieuwe backend-code bevindt zich hier (alleen TS, wordt gebruikt door /api) |
/packages/data-schemas | TypeScript | Backend | packages/data-provider | Databasemodellen/-schema's, deelbaar over backend-projecten |
/packages/data-provider | TypeScript | Gedeeld | — | Gedeelde API-types, endpoints, data-service — gebruikt door zowel frontend als backend |
/client | TypeScript/React | Frontend | packages/data-provider, packages/client | Frontend SPA |
/packages/client | TypeScript | Frontend | packages/data-provider | Gedeelde frontend-hulpprogramma's |
Kernprincipes
- Alle nieuwe backend-code moet TypeScript zijn in
/packages/api. - Houd
/apiwijzigingen tot het absolute minimum — dunne JS-wrappers die/packages/apiaanroepen. - Database-specifieke gedeelde logica hoort thuis in
/packages/data-schemas. - Gedeelde API-logica voor frontend/backend (endpoints, types, data-service) hoort in
/packages/data-provider.
Bouwen en installeren
| Commando | Doel |
|---|---|
npm run smart-reinstall | Installeer afhankelijkheden (indien lockfile is gewijzigd) + bouw via Turborepo |
npm run reinstall | Schone installatie na het wijzigen van Node/npm-versies of wanneer de status van afhankelijkheden twijfelachtig is |
npm run build | Bouw alle gecompileerde code via Turborepo (parallel, gecachet) |
npm run frontend | Bouw alle gecompileerde code sequentieel (legacy fallback) |
npm run build:data-provider | Herbouw packages/data-provider na wijzigingen |
npm run backend | Start de backend-server |
npm run backend:dev | Start backend met file watching (ontwikkeling) |
npm run frontend:dev | Start frontend dev-server met HMR (poort 3090, vereist dat de backend draait) |
- Node.js:
v24.16.0 - npm:
v11.16.0 - Database: MongoDB
- Backend draait op
http://localhost:3080/; frontend dev server ophttp://localhost:3090/
Let op
Voor de volledige set aan codeerstandaarden en conventies, zie Code Standards and Conventions.
Hoe is deze gids?