Entonces, otro concepto, el hot module replacement. Los bundles modernos todos tienen hot module replacement. Es cuando estás trabajando en tu aplicación localmente y cambias el código fuente. Cuando cambias el código fuente, no quieres recargar toda la aplicación, sino solo la parte que cambiaste. Con el hot module replacement, solo le dices al navegador que recargue solo esa parte específica. Y podemos hacer eso usando un watcher y usando sockets. Así que con sockets, simplemente enviamos al navegador un JSON. Por ejemplo, cuando le decimos al navegador que reemplace solo un chunk específico o un módulo específico.
Ahora, para esa parte final, puedo presentarte a VIT. Sabiendo todo lo que ahora sabemos, podemos entender que VIT no es exactamente un bundler. De hecho, ellos se llaman a sí mismos un no bundler. ¿Por qué? Porque VIT es como un orquestador de bundlers. VIT está usando y optimizando otros bundlers. Así que otros bundlers son dependencias para VIT. En VIT, tenemos el modo dev y el modo producción. El modo dev está usando ES build. Así que cuando construimos cosas en modo dev, estamos usando ES build. Y tenemos hot module replacement. Tenemos pre-bundling de dependencias. Tenemos optimizaciones. En modo producción, en cambio, tenemos rollup. VIT está usando rollup.
Así que el bundle final para producción está fuertemente optimizado por rollup y por configuraciones opinadas hechas por el proyecto VIT. Esta es una comparación simple entre VIT y un bundle simple en la aplicación final de producción. Mencioné que el pre-bundle de dependencias, si miras a VIT cuando estás en modo desarrollo, verás esto en la consola, pre-bundling de dependencias. Esto significa que las dependencias de tu aplicación están siendo optimizadas. De hecho, cuando miras el código final de producción y el código empaquetado, verás que, por ejemplo, use state no proviene de React, sino de módulos React, porque está pre-bundled y optimizado por VIT. O aquí, por ejemplo, en producción, tenemos aquí configuraciones opinadas con rollup. En cambio, en modo desarrollo, tenemos un servidor web. Lo siento.
Comments