Featured image of post Configuración esencial de Vite para compilaciones más rápidasFeatured image of post Configuración esencial de Vite para compilaciones más rápidas

Configuración esencial de Vite para compilaciones más rápidas

Consejos esenciales de configuración de Vite para compilaciones más rápidas. Mejora tu experiencia de desarrollo con estas técnicas.

Vite se ha ganado su reputación como una herramienta de compilación frontend rápida, especialmente en el inicio del servidor de desarrollo. Este artículo desglosa por qué Vite es rápido y explora ajustes de configuración para llevar el rendimiento de compilación aún más lejos.

Por qué Vite es rápido

La diferencia clave entre Vite y los empaquetadores tradicionales como Webpack es que Vite usa diferentes estrategias para desarrollo y producción.

Dev: Servicio nativo de módulos ES

Durante el desarrollo, Vite omite el empaquetado por completo. Aprovecha el soporte nativo de módulos ES del navegador, transformando y sirviendo solo los archivos solicitados. Esto significa que el inicio del servidor de desarrollo sigue siendo instantáneo sin importar cuán grande sea tu proyecto.

Producción: Optimización con Rollup

Para compilaciones de producción, Vite usa Rollup internamente para manejar tree-shaking y división de código. Todo se configura a través de un solo archivo vite.config.ts.

Ajustes de rendimiento

Pre-empaquetado de dependencias

Vite pre-empaqueta las dependencias de node_modules anticipadamente. Esto ocurre en el primer npm run dev y se almacena en caché, haciendo que los inicios posteriores sean mucho más rápidos.

Usa optimizeDeps.exclude si necesitas forzar ciertas dependencias fuera del paso de pre-empaquetado:

export default defineConfig({
  optimizeDeps: {
    exclude: ['large-dependency']
  }
})

manualChunks para paquetes más inteligentes

Para optimizar el tamaño de salida de producción, configura build.rollupOptions.output.manualChunks. Dividir paquetes por biblioteca mejora la eficiencia del caché del navegador:

export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          vendor: ['react', 'react-dom'],
          ui: ['@mui/material', '@emotion/react']
        }
      }
    }
  }
})

Esto divide las bibliotecas de React en un chunk vendor y MUI en un chunk ui. Cuando actualizas solo el código de la aplicación, el caché de la biblioteca permanece intacto.

Aliases de ruta

Configurar aliases de ruta como @/components/Button mantiene las declaraciones de importación limpias y legibles:

import { resolve } from 'path'

export default defineConfig({
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    }
  }
})

No olvides reflejar el alias en tsconfig.json:

{
  "compilerOptions": {
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

Variables de entorno

Accede a las variables de entorno en Vite mediante import.meta.env.VITE_*. Coloca archivos .env en la raíz de tu proyecto para cambiar valores entre desarrollo y producción sin sobrecarga en tiempo de ejecución — las variables se insertan estáticamente en tiempo de compilación.

# .env
VITE_API_URL=https://api.example.com

# .env.development
VITE_API_URL=http://localhost:3000

Inspeccionando la salida de compilación de producción

Para visualizar el tamaño del paquete, usa el plugin vite-bundle-analyzer:

npm add -D vite-bundle-analyzer

Agrégalo a vite.config.ts y la próxima compilación te mostrará exactamente qué módulos consumen más espacio.

Resumen

Vite es bastante rápido desde el primer momento, pero agregar ajustes básicos como la división manual de chunks y los aliases de ruta hace que el desarrollo y el despliegue en producción sean aún más fluidos. Comienza con un proyecto pequeño, experimenta con estas configuraciones y encuentra la configuración que funcione mejor para tu equipo.