# Fix: "module is not defined" Error ## Problème L'erreur `Uncaught ReferenceError: module is not defined` dans `index.js:6` indique qu'un fichier utilise la syntaxe CommonJS (`module.exports`) dans un contexte ES modules. ## Solutions Appliquées ### 1. Configuration Vite (`vite.config.ts`) - ✅ Ajout de `esmExternals: true` dans `commonjsOptions` - ✅ Ajout de `format: 'esm'` dans `esbuildOptions` de `optimizeDeps` - ✅ Ajout de `interop: 'compat'` dans `rollupOptions.output` ### 2. MSW (Mock Service Worker) - ✅ Ajout d'un try/catch dans `enableMocking()` pour éviter que MSW bloque l'app - ✅ MSW est désactivé par défaut (nécessite `VITE_USE_MSW=1`) ### 3. Code PWA - ✅ Correction de l'erreur "unreachable code after return" dans `pwa.ts` ## Si l'erreur persiste ### Option 1: Désactiver MSW complètement ```bash # S'assurer que MSW n'est pas activé unset VITE_USE_MSW # ou export VITE_USE_MSW=0 ``` ### Option 2: Vider le cache et redémarrer ```bash # Arrêter le serveur pkill -f vite # Vider le cache Vite rm -rf node_modules/.vite rm -rf dist # Redémarrer cd apps/web npm run dev ``` ### Option 3: Vérifier les chunks générés L'erreur pourrait venir d'un chunk généré. Vérifier dans la console du navigateur quel fichier exact cause le problème. ### Option 4: Désactiver le service worker MSW Si MSW est nécessaire, on peut désactiver son service worker : ```typescript // Dans src/main.tsx, modifier enableMocking() pour ne pas utiliser le service worker await worker.start({ onUnhandledRequest: 'bypass', // Ne pas utiliser serviceWorker si problème // serviceWorker: { // url: '/mockServiceWorker.js', // }, }); ``` ## Vérification 1. Ouvrir la console du navigateur (F12) 2. Vérifier l'onglet "Console" pour l'erreur exacte 3. Vérifier l'onglet "Network" pour voir quel fichier est chargé 4. Vérifier l'onglet "Sources" pour voir le code source du fichier problématique ## Notes - L'erreur pourrait aussi venir d'une dépendance dans `node_modules` qui n'est pas correctement transformée - Vérifier que toutes les dépendances sont à jour : `npm update` - Si le problème persiste, il pourrait être nécessaire de mettre à jour Vite ou certaines dépendances