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