// ----------------------------------------------------------------------------- // Lou-Ka — Agrégateur de logements à louer (province de Québec) // Auteur : Simon-Pierre Boucher — contact@spboucher.ai // vite.config.ts : configuration Vite (proxy API en dev, build vers dist/) // ----------------------------------------------------------------------------- import { copyFileSync, mkdirSync } from "node:fs"; import { defineConfig, type Plugin } from "vite"; import react from "@vitejs/plugin-react"; // MapLibre v6 charge son worker (module ES + import relatif d'un module // partagé) depuis un fichier séparé : on copie les deux fichiers TELS QUELS // (non hachés, même dossier) pour que l'import relatif du worker fonctionne. // MapView.tsx pointe dessus via maplibregl.setWorkerUrl en production. const MAPLIBRE_WORKER_FILES = ["maplibre-gl-worker.mjs", "maplibre-gl-shared.mjs"]; const copyMaplibreWorker = (): Plugin => ({ name: "louka-copy-maplibre-worker", closeBundle() { mkdirSync("dist/maplibre", { recursive: true }); for (const f of MAPLIBRE_WORKER_FILES) { copyFileSync(`node_modules/maplibre-gl/dist/${f}`, `dist/maplibre/${f}`); } }, }); export default defineConfig({ plugins: [react(), copyMaplibreWorker()], server: { proxy: { "/api": "http://localhost:8080" }, }, build: { outDir: "dist" }, });