Skip to content

Más allá de la velocidad

ViteConf 2023

¡Mira la repetición!

Filosofía del Proyecto

Núcleo extensible y liviano

Vite no tiene la intención de cubrir todos los casos de uso para todos los usuarios. Vite tiene como objetivo soportar los patrones más comunes para construir aplicaciones web fuera de la caja, pero el núcleo de Vite debe mantenerse liviano con una API reducida para mantener el proyecto de manera sostenible a largo plazo. Este objetivo es posible gracias al sistema de complementos de Vite basado en Rollup. Las funcionalidades que se pueden implementar como complementos externos generalmente no se agregarán al núcleo de Vite. vite-plugin-pwa es un excelente ejemplo de lo que se puede lograr fuera del núcleo de Vite, y hay muchos complementos bien mantenidos para cubrir tus necesidades. Vite trabaja en estrecha colaboración con el proyecto Rollup para garantizar que los complementos se puedan utilizar tanto en proyectos de Vite como en proyectos estándar de Rollup, tratando de llevar las extensiones necesarias a la API de complementos cuando sea posible.

Impulsando la Web Moderna

Vite ofrece funcionalidades con opiniones que promueven la escritura de código moderno. Por ejemplo:

  • El código fuente solo puede escribirse en ESM, donde las dependencias que no son ESM deben ser precompiladas como ESM para funcionar.
  • Se fomenta el uso de los web workers escritos con la sintaxis new Worker para seguir los estándares modernos.
  • Los módulos de Node.js no se pueden utilizar en el navegador.

Al agregar nuevas funcionalidades, se siguen estos patrones para crear una API a prueba de futuro, que no siempre es compatible con otras herramientas de compilación.

Enfoque pragmático hacia el rendimiento

Vite se ha centrado en el rendimiento desde sus orígenes. Su arquitectura de servidor de desarrollo permite una actualización en caliente (HMR) que se mantiene rápida a medida que los proyectos crecen. Vite utiliza herramientas nativas como esbuild y SWC para implementar tareas intensivas, pero mantiene el resto del código en JavaScript para equilibrar velocidad y flexibilidad. Cuando es necesario, los frameworks utilizarán Babel para compilar el código del usuario. Durante el tiempo de compilación, Vite actualmente utiliza Rollup, donde el tamaño del paquete y el acceso a un amplio ecosistema de complementos son más importantes que la velocidad bruta. Vite continuará evolucionando internamente, utilizando nuevas bibliotecas a medida que aparezcan para mejorar la experiencia de desarrollo (DX) y mantener su API estable.

Construyendo frameworks de trabajo sobre Vite

Aunque Vite se puede utilizar directamente por los usuarios, brilla como una herramienta para crear frameworks. El núcleo de Vite es independiente del framework, pero existen complementos pulidos para cada framework de interfaz de usuario (IU). Su API en JavaScript permite a los autores de frameworks de aplicaciones utilizar las funcionalidades de Vite para crear experiencias personalizadas para sus usuarios. Vite incluye soporte para primitivos de SSR, que generalmente están presentes en herramientas de nivel superior pero que son fundamentales para construir web frameworks modernos. Y los complementos de Vite completan el panorama al ofrecer una forma de compartir entre diferentes frameworks. Vite también es una excelente opción cuando se combina con frameworks de backend como Ruby y Laravel.

Un ecosistema activo

La evolución de Vite es una cooperación entre los mantenedores de frameworks y complementos, los usuarios y el equipo de Vite. Fomentamos la participación activa en el desarrollo del núcleo de Vite una vez que un proyecto adopta Vite. Trabajamos en estrecha colaboración con los proyectos principales del ecosistema para minimizar las regresiones en cada lanzamiento, ayudados por herramientas como vite-ecosystem-ci. Esto nos permite ejecutar la integración continua (CI) de los proyectos principales que utilizan Vite en las solicitudes de cambios seleccionadas y nos brinda un estado claro de cómo reaccionaría el ecosistema ante un lanzamiento. Nos esforzamos por solucionar las regresiones antes de que afecten a los usuarios y permitir que los proyectos se actualicen a las versiones siguientes tan pronto como se publiquen. Si estás trabajando con Vite, te invitamos a unirte al Discord de Vite y participar en el proyecto también.

Publicado bajo licencia MIT. (31993f54)