From 692fbbe9128df935e4cfab96939aaf6425fc675f Mon Sep 17 00:00:00 2001 From: Manus Date: Sat, 22 Aug 2026 18:22:46 +0000 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Correction=20du=20runtime=20Docke?= =?UTF-8?q?r=20:=20Vite=20et=20sa=20configuration=20sont=20maintenant=20ch?= =?UTF-8?q?arg=C3=A9s=20uniquement=20en=20d=C3=A9veloppement=20via=20impor?= =?UTF-8?q?ts=20indirects.=20Le=20bundle=20serveur=20de=20production=20ne?= =?UTF-8?q?=20r=C3=A9f=C3=A9rence=20plus=20Vite=20ni=20ses=20plugins=20;?= =?UTF-8?q?=2031=20tests,=20TypeScript=20et=20build=20valid=C3=A9s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/_core/vite.ts | 12 ++++++++++-- todo.md | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/server/_core/vite.ts b/server/_core/vite.ts index 86d07f6..5fd1e33 100644 --- a/server/_core/vite.ts +++ b/server/_core/vite.ts @@ -3,10 +3,18 @@ import fs from "fs"; import { type Server } from "http"; import { nanoid } from "nanoid"; import path from "path"; -import { createServer as createViteServer } from "vite"; -import viteConfig from "../../vite.config"; export async function setupVite(app: Express, server: Server) { + // Vite et sa configuration sont des dépendances de développement. Les imports + // indirects empêchent esbuild de les intégrer au bundle serveur de production. + const vitePackageName = "vite"; + const viteConfigPath = "../../vite.config"; + const [viteModule, viteConfigModule] = await Promise.all([ + import(vitePackageName), + import(viteConfigPath), + ]); + const createViteServer = viteModule.createServer as typeof import("vite").createServer; + const viteConfig = viteConfigModule.default; const serverOptions = { middlewareMode: true, hmr: { server }, diff --git a/todo.md b/todo.md index 6be811c..dd13310 100644 --- a/todo.md +++ b/todo.md @@ -733,8 +733,9 @@ - [x] Vérifier TypeScript, tests, build et authentification OAuth2 réelle ## Déploiement ImapFlow — recette et production -- [ ] Pousser la version ImapFlow vers le dépôt Gitea de recette +- [x] Pousser la version ImapFlow vers le dépôt Gitea de recette - [x] Réduire l’image runtime Docker pour fiabiliser le build sur le serveur de recette +- [x] Charger Vite uniquement en développement pour l’exclure de l’image runtime - [ ] Déployer et valider HTTP, conteneurs et OAuth2 ImapFlow en recette - [ ] Pousser la version validée vers le dépôt Gitea de production - [ ] Déployer et valider HTTP, conteneurs et OAuth2 ImapFlow en production