diff --git a/scripts/limpiar-y-rebuild.sh b/scripts/limpiar-y-rebuild.sh new file mode 100755 index 00000000..2df9e587 --- /dev/null +++ b/scripts/limpiar-y-rebuild.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# Script para limpiar dependencias y hacer rebuild completo +# Soluciona problemas de React duplicado o mal resuelto + +set -e + +echo "╔══════════════════════════════════════════════════════════════╗" +echo "║ 🧹 LIMPIEZA COMPLETA Y REBUILD ║" +echo "╚══════════════════════════════════════════════════════════════╝" +echo "" + +echo "📋 Paso 1: Verificando versiones de React..." +npm ls react react-dom 2>&1 | head -5 +echo "" + +echo "🧹 Paso 2: Limpiando node_modules y package-lock.json..." +rm -rf node_modules +rm -f package-lock.json +echo "✅ Limpieza completada" +echo "" + +echo "📦 Paso 3: Reinstalando dependencias..." +npm install +echo "✅ Dependencias reinstaladas" +echo "" + +echo "🔍 Paso 4: Verificando que no hay duplicados de React..." +npm ls react react-dom 2>&1 | grep -E "(react@|UNMET|extraneous)" || echo "✅ No se encontraron duplicados" +echo "" + +echo "🔨 Paso 5: Haciendo build de producción..." +npm run build +echo "" + +echo "✅ Proceso completado" +echo "" +echo "📊 Verificar que el build se completó correctamente:" +echo " ls -lh dist/assets/ | grep vendor-react" + diff --git a/vite.config.ts b/vite.config.ts index 185300f5..ff71b13e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -37,6 +37,9 @@ export default defineConfig({ alias: { "@": path.resolve(__dirname, "./src"), }, + // CRÍTICO: Forzar deduplicación de React para evitar errores useLayoutEffect + // Esto asegura que solo hay una instancia de React en el bundle + dedupe: ["react", "react-dom"], }, // Configuración para procesar archivos .md e imágenes assetsInclude: ["**/*.md", "**/*.png", "**/*.jpg", "**/*.jpeg", "**/*.svg", "**/*.gif"],