Projektarchitektur
Übersicht über die Monorepo-Arbeitsbereichsstruktur und Paketgrenzen von LibreChat.
Monorepo-Struktur
LibreChat ist als Monorepo mit klar definierten Workspace-Grenzen organisiert:
| Workspace | Sprache | Seite | Abhängigkeit | Zweck |
|---|---|---|---|---|
/api | JS (legacy) | Backend | packages/api, packages/data-schemas, packages/data-provider, @librechat/agents | Express-Server — Änderungen hier minimieren |
/packages/api | TypeScript | Backend | packages/data-schemas, packages/data-provider | Neuer Backend-Code befindet sich hier (nur TS, wird von /api konsumiert) |
/packages/data-schemas | TypeScript | Backend | packages/data-provider | Datenbankmodelle/-schemas, gemeinsam nutzbar für Backend-Projekte |
/packages/data-provider | TypeScript | Shared | — | Gemeinsame API-Typen, Endpoints, Data-Service — wird sowohl vom Frontend als auch vom Backend verwendet |
/client | TypeScript/React | Frontend | packages/data-provider, packages/client | Frontend SPA |
/packages/client | TypeScript | Frontend | packages/data-provider | Gemeinsame Frontend-Utilities |
Grundprinzipien
- All new backend code must be TypeScript in
/packages/api. - Halten Sie Änderungen an
/apiauf ein absolutes Minimum — schlanke JS-Wrapper, die/packages/apiaufrufen. - Datenbankspezifische gemeinsame Logik gehört in
/packages/data-schemas. - Frontend/Backend-geteilte API-Logik (endpoints, types, data-service) gehört in
/packages/data-provider.
Erstellen und Installieren
| Befehl | Zweck |
|---|---|
npm run smart-reinstall | Installiert Abhängigkeiten (falls sich die Lockfile geändert hat) + Build via Turborepo |
npm run reinstall | Clean Install nach Änderung der Node/npm-Versionen oder bei fehlerhaftem Abhängigkeitsstatus |
npm run build | Erstellt den gesamten kompilierten Code via Turborepo (parallel, gecacht) |
npm run frontend | Erstellt den gesamten kompilierten Code sequenziell (Legacy-Fallback) |
npm run build:data-provider | Erstellt packages/data-provider nach Änderungen neu |
npm run backend | Startet den Backend-Server |
npm run backend:dev | Startet das Backend mit Dateiüberwachung (Entwicklung) |
npm run frontend:dev | Startet den Frontend-Entwicklungsserver mit HMR (Port 3090, erfordert laufendes Backend) |
- Node.js:
v24.16.0 - npm:
v11.16.0 - Datenbank: MongoDB
- Das Backend läuft unter
http://localhost:3080/; der Frontend-Entwicklungsserver unterhttp://localhost:3090/
Hinweis
Für den vollständigen Satz an Programmierstandards und Konventionen, siehe Code Standards and Conventions.
Wie finden Sie diese Anleitung?