L'architecture Monorepo (tout le code dans un seul dépôt Git) est devenue le standard pour les applications fullstack TypeScript.
Notre Stack Idéale
Chez ReposLens, nous utilisons :
- Turborepo : Pour l'orchestration des tâches et le remote caching.
- Pnpm : Pour la gestion rapide des dépendances (workspaces).
- Apps :
apps/web: Next.js (Frontend)apps/api: NestJS (Backend)
- Packages :
packages/database: Prisma schema partagépackages/ui: Composants React partagéspackages/typescript-config: Configs TS partagées
Le grand avantage : Type Safety de bout en bout
L'avantage tueur, c'est le partage de types. Votre DTO (Data Transfer Object) défini dans le backend peut être importé directement dans le frontend. Si vous changez un champ dans l'API, le Frontend ne compile plus. Fini les bugs de production liés à des changements d'API non synchronisés.
Déployer un Monorepo
Le déploiement peut faire peur. L'astuce est d'utiliser Docker avec le "pruning". Exemple de Dockerfile optimisé pour Turbo :
FROM node:18-alpine AS base
FROM base AS builder
WORKDIR /app
RUN npm install turbo --global
COPY . .
RUN turbo prune --scope=web --docker
# ... build steps
Cela permet de ne copier que les fichiers nécessaires pour l'application cible, réduisant la taille de l'image Docker finale.
Articles similaires
Microservices vs Monolithe : Comment réellement visualiser votre architecture
Monolithe ou microservices ? La vraie question est : pouvez-vous voir ce que vous avez réellement ? Apprenez à visualiser, comparer et décider en confiance.
Continuer la lectureComment détecter les dépendances circulaires dans votre projet TypeScript (et les corriger)
Découvrez 3 méthodes pratiques pour détecter les dépendances circulaires en TypeScript : madge CLI, ESLint import/no-cycle, et les checks PR automatiques avec ReposLens.
Continuer la lectureGestion des dépendances dans un monorepo : visualisez avant qu'il ne soit trop tard
Apprenez à gérer les dépendances internes d'un monorepo. Découvrez les pièges courants comme les dépendances circulaires et les god packages, et les outils pour les détecter.
Continuer la lecture