Vite - La Herramienta de Desarrollo Frontend de Próxima Generación

Rate this content
Bookmark

¿Cómo construiremos aplicaciones web en el futuro? Aprendamos cómo esbuild y los bundlers como Vite, construidos sobre él, funcionan para ver cómo pueden acelerar nuestros flujos de trabajo de desarrollo.

This talk has been presented at React Advanced 2021, check out the latest edition of this React Conference.

FAQ

VIT es una herramienta de construcción creada por Evan Mew, quien también es el creador de VJS. VIT funciona como un servidor de desarrollo y un bundler preconfigurado, diseñada para mejorar la velocidad y la eficiencia del desarrollo de software.

VIT se compone de un servidor de desarrollo que soporta módulos ES nativos y un comandante de construcción que gestiona la preagrupación de dependencias y la generación de activos estáticos optimizados para producción.

VIT mejora la velocidad del ciclo de retroalimentación durante el desarrollo, especialmente evidente en proyectos grandes como los que utilizan React, permitiendo modificaciones rápidas sin necesidad de recargar o reconfigurar extensamente.

Para iniciar un proyecto con VIT, puedes usar el comando 'npm init' y luego instalar VIT ejecutando 'npm install DashDev-save-vit'.

Sí, VIT permite elegir entre varios frameworks como React, Vue y Preact para integrarse y trabajar de manera eficiente. Actualmente, Angular no está soportado, pero se espera que lo esté en el futuro.

Sí, VIT puede ser ampliado mediante complementos que se basan en la interfaz de complementos de Rollout, lo que permite una mayor personalización y funcionalidad específica según las necesidades del proyecto.

En los proyectos que utilizan VIT, el archivo index HTML actúa como el punto de entrada, a diferencia de otros proyectos donde se utiliza main.js.

VIT viene con soporte de PostCSS incorporado y permite el uso de CSS módulos simplemente asegurándose de que los archivos CSS tengan la extensión .module.css.

Devlin Duldulao
Devlin Duldulao
20 min
25 Oct, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
VIT es una herramienta de construcción que resuelve el problema de la velocidad lenta del ciclo de retroalimentación al aprovechar el soporte nativo para módulos ES en los navegadores modernos. Te permite escribir código como módulos ES nativos y se encarga del análisis y servido de los módulos por ti. VIT admite JavaScript, CSS, SAS, React, TypeScript y TSX de forma nativa. También permite una migración rápida de CRA a VIT y se puede utilizar como middleware en un servidor Node.js existente para habilitar el renderizado del lado del servidor.

1. Introducción a la herramienta de construcción VIT

Short description:

VIT es una herramienta de construcción creada por Evan Mew, el creador de VJS. Tiene dos partes principales: un servidor de desarrollo y un comandante de construcción. El servidor de desarrollo mejora los módulos ES nativos y proporciona una colocación modular rápida, mientras que el comandante de construcción empaqueta el código en ES build durante el desarrollo y lo agrupa en producción. VIT resuelve el problema de la velocidad lenta del ciclo de retroalimentación aprovechando el soporte nativo para los módulos ES en los navegadores modernos. Le permite escribir código como módulos ES nativos y se encarga del análisis y la entrega de los módulos por usted. VIT también sirve como punto de entrada para los proyectos de VIT y se puede ampliar mediante complementos.

Entonces, ¿qué es VIT? VIT es una palabra francesa, significa rápido. Es una herramienta de construcción creada por Evan Mew, el creador de VJS. Pero VIT es una herramienta independiente del marco. Quiero que pienses en VIT como estas dos cosas aquí. Puedes ver un servidor y un bundler. Entonces, esta herramienta de construcción, VIT, tiene dos partes principales. Es un servidor de desarrollo aquí, y un comandante de construcción que también puedes llamar un bundler preconfigurado.

El servidor de desarrollo proporciona mejoras de funciones avanzadas sobre los módulos ES nativos, una colocación modular extremadamente rápida, por ejemplo, mientras que el comandante agrupa tu código en ES build durante el desarrollo y lo agrupa en producción. ¿Y qué más puedo decir sobre ES build? Mientras hace la preagrupación de dependencias, mientras que roll up hace alguna preconfiguración para generar activos estáticos altamente optimizados para producción.

El problema que estamos tratando de resolver es la velocidad del ciclo de retroalimentación durante el desarrollo. Si usas React, especialmente en un proyecto grande, probablemente hayas notado que la colocación de módulos en caliente lleva a veces dos, tres, cuatro, cinco, dependiendo de tu máquina, y tienes que cambiar tu configuración de Webpack, JS o habilitar el almacenamiento en caché, etc., solo editando un archivo. Es posible que tengas que esperar unos segundos para que se actualicen cuatro cosas en la pantalla. Este problema se debe a la necesidad de agrupar. No hay forma de que el navegador admita realmente el código modularizado. Esa es la razón por la que tenemos browserify, Webpack, Parcel, etc., para que el código modularizado pueda convertirse en un solo archivo que se pueda ejecutar en el navegador. Todos sabemos que la mayoría de los navegadores modernos admiten nativamente los módulos ES. Esto significa que durante el desarrollo hay una gran cantidad de trabajo que ya no necesitamos hacer porque el navegador ahora puede manejarlos de forma nativa. En VIT, vas a escribir tu código como módulos ES nativos. Y VIT tomará estos módulos ES y luego analizará el archivo y buscará tus declaraciones de importación y luego enviará solicitudes HTTP para cada módulo al servidor de desarrollo. Entonces, el servidor de desarrollo simplemente sirve estos módulos ya que es un análisis muy rápido. Sí. ¿Qué más? Entonces, el archivo index HTML aquí es el punto de entrada en los proyectos de VIT, no main.js que a menudo se ve en proyectos de Webpack. Así que piénsalo de nuevo como un servidor de desarrollo. De acuerdo. Poniendo todo esto junto, VIT te proporciona una experiencia de desarrollo extremadamente rápida y eficiente. Hablando de complementos, VIT se puede ampliar mediante complementos, que se basan en la interfaz de complementos de Rollout. Verás más sobre los complementos en un momento. Para iniciar VIT, puedes enviar PM yarn, PM PM. Aquí tienes los comandos que puedes usar.

2. Demo de la herramienta de construcción VIT

Short description:

Puedes elegir React, Vue, Preact o vanilla VIT. Aún no tenemos Angular. Hagamos una demostración con vanilla VIT, luego vanilla VIT-to-React. Si tenemos tiempo, podemos migrar de CRI a React-Vite. Podemos probarlo aquí, VIT-demo. Instala el paquete VIT y crea un archivo de índice. Usa el comando dev para ejecutar la aplicación en el puerto 3000 y el comando preview para comparar el entorno de desarrollo y producción en el puerto 5000. Echa un vistazo a los módulos de Node, incluyendo CS build, roll-up y post-CSS.

Y puedes elegir React, Vue, Preact o vanilla VIT. Desafortunadamente, aún no tenemos Angular aquí. Probablemente el próximo año, porque Angular tiene esta configuración muy única, su canal de construcción, herramienta de construcción.

Sí, hagamos una demostración aquí. Vamos a probar vanilla VIT, luego vanilla VIT-to-React. Y si tenemos más tiempo, podemos migrar de CRI a React-Vite. Sí, podemos probarlo aquí, digamos, VIT-demo.

De acuerdo, cierra esto. Ahora, tal vez podamos ejecutar npm init y comenzar a agregar el paquete VIT. Sí, aquí, npm install DashDev-save-vit. Mientras esperamos, podemos crear un archivo de índice aquí. Ese es el punto de entrada. Y revisa, digamos, aquí. Sí, mira aquí, VIT 2.6.2. Eliminemos el script de ejemplo aquí. Cambiémoslo, digamos, a dev. Esto es GitHub Copilot ayudándome. Y build o construyendo el proyecto VIT. Probablemente aquí, preview o bit preview. ¿Entonces, qué son estos? Dev 2. Ejecuta tu proyecto VIT en un entorno de desarrollo aquí. VIT build para construir. Eso creará esto. Entonces, dev, por cierto, ejecutará la aplicación en el puerto 3000. Luego podemos previsualizar la construcción usando este comando de previsualización aquí, que se ejecutará en el puerto 5000. Básicamente, esto te permite previsualizar tu proyecto en producción. Así puedes comparar el entorno de desarrollo y producción de tu aplicación o versión de tu aplicación. Y sí, echemos un vistazo a los módulos de Node aquí. Mira aquí, tenemos CS build, roll-up, un poco de post-CSS. Así que aquí, post-CSS.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Vite: Repensando las Herramientas de Frontend
JSNation Live 2021JSNation Live 2021
31 min
Vite: Repensando las Herramientas de Frontend
Top Content
Vite is a next-generation build tool that leverages native ES modules for improved performance. It eliminates the need for bundling and improves hot module replacement. Vite provides an opinionated default configuration while still allowing advanced customization through plugins. It is framework agnostic and can be used for React and other applications. Vite is being adopted by Next.js and Create React App, and integration with Nuxt 3 offers significant speed improvements.
Bienvenido a Nuxt 3
Vue.js London Live 2021Vue.js London Live 2021
29 min
Bienvenido a Nuxt 3
Top Content
Nux3 has made significant improvements in performance, output optimization, and serverless support. Nuxt Bridge brings the Nitro engine for enhanced performance and easier transition between Nuxt 2 and Nuxt Read. Nuxt 3 supports Webpack 5, Bytes, and Vue 3. NextLab has developed brand new websites using Docus technology. Nuxt.js is recommended for building apps faster and simpler, and Nuxt 2 should be used before migrating to Nuxt 3 for stability. DOCUS is a new project that combines Nuxt with additional features like content modules and an admin panel.
10 Años de OSS Independiente: Una Retrospectiva
JSNation 2024JSNation 2024
33 min
10 Años de OSS Independiente: Una Retrospectiva
This talk is a ten-year retrospective into the growth of the Vue.js framework as an open-source project. It highlights the challenges faced by open-source developers, the importance of finding balance and managing scope, and the collaborative nature of the Vue community. The talk also discusses the development of Vite as a build tool and the vision for a unified JavaScript toolchain. It emphasizes the need for community alignment, contributions, and testing, while acknowledging the challenges of bad actors in the open-source community.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
pnpm is a fast and efficient package manager that gained popularity in 2021 and is used by big tech companies like Microsoft and TikTok. It has a unique isolated node module structure that prevents package conflicts and ensures each project only has access to its own dependencies. pnpm also offers superior monorepo support with its node module structure. It solves the disk space usage issue by using a content addressable storage, reducing disk space consumption. pnpm is incredibly fast due to its installation process and deterministic node module structure. It also allows file linking using hardlinks instead of symlinks.
El funcionamiento interno de la construcción de Vite
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
El funcionamiento interno de la construcción de Vite
Welcome to vidBuild, a tool that optimizes your application for production by offering fast hodgemodule replacement and support for various technologies. The build process in vidBuild involves optimizing and minifying assets, bundling JS and CSS, and generating chunks for dynamic imports. The pipeline in vidBuild includes plugins for alias, resolution, CSS modules, and asset handling. Vid is a complete build tool with a flexible plugin system and support from a vibrant community. Vite's plugin API is compatible with Rollup, and Vite aims for simplicity while pushing complexity to the plugin system.