Arsitektur Proyek
Ikhtisar struktur ruang kerja monorepo LibreChat dan batasan paket.
Struktur Monorepo
LibreChat diatur sebagai monorepo dengan batasan ruang kerja yang terdefinisi dengan jelas:
| Workspace | Bahasa | Sisi | Dependensi | Tujuan |
|---|---|---|---|---|
/api | JS (warisan) | Backend | packages/api, packages/data-schemas, packages/data-provider, @librechat/agents | Server Express โ minimalkan perubahan di sini |
/packages/api | TypeScript | Backend | packages/data-schemas, packages/data-provider | Kode backend baru berada di sini (hanya TS, digunakan oleh /api) |
/packages/data-schemas | TypeScript | Backend | packages/data-provider | Model/skema basis data, dapat dibagikan di seluruh proyek backend |
/packages/data-provider | TypeScript | Bersama | โ | Tipe API bersama, endpoint, layanan data โ digunakan oleh frontend dan backend |
/client | TypeScript/React | Frontend | packages/data-provider, packages/client | SPA Frontend |
/packages/client | TypeScript | Frontend | packages/data-provider | Utilitas frontend bersama |
Prinsip Utama
- Semua kode backend baru harus menggunakan TypeScript di
/packages/api. - Jaga perubahan
/apiseminimal mungkin โ pembungkus JS tipis yang memanggil/packages/api. - Logika bersama yang spesifik untuk basis data berada di
/packages/data-schemas. - Logika API bersama frontend/backend (endpoint, tipe, data-service) berada di
/packages/data-provider.
Membangun dan Menginstal
| Perintah | Tujuan |
|---|---|
npm run smart-reinstall | Instal dependensi (jika lockfile berubah) + build melalui Turborepo |
npm run reinstall | Instal bersih setelah mengubah versi Node/npm atau saat status dependensi mencurigakan |
npm run build | Build semua kode terkompilasi melalui Turborepo (paralel, di-cache) |
npm run frontend | Build semua kode terkompilasi secara berurutan (fallback lama) |
npm run build:data-provider | Build ulang packages/data-provider setelah ada perubahan |
npm run backend | Jalankan server backend |
npm run backend:dev | Jalankan backend dengan pemantauan file (pengembangan) |
npm run frontend:dev | Jalankan server dev frontend dengan HMR (port 3090, memerlukan backend yang sedang berjalan) |
- Node.js:
v24.16.0 - npm:
v11.16.0 - Basis data: MongoDB
- Backend berjalan pada
http://localhost:3080/; server pengembangan frontend padahttp://localhost:3090/
Catatan
Untuk rangkaian lengkap standar dan konvensi pengkodean, lihat Code Standards and Conventions.
Bagaimana panduan ini?