Casi todos los agrupadores lo admiten y permiten que esos agrupadores den un nombre específico a un paquete de código que luego terminará en el ámbito global del disco en el navegador. El ejemplo con el que vamos a trabajar hoy es Meltwater Visualizations. Cuando tienes muchas dependencias entrelazadas, no todas podrán avanzar al mismo ritmo. Actualizar una dependencia, como visualizations, a la versión 14 cuando otras personas dependen de la versión 13 podría significar que todos tengan que actualizar al mismo tiempo y hacer una actualización muy grande. Pero si puedes cargar Meltwater Visualizations 13 y Meltwater Visualizations 14 al mismo tiempo, les das a esos otros equipos la oportunidad de actualizar a su propio ritmo, a un ritmo razonable que tenga sentido para la carga de trabajo que tienen. Y eso significa que las versiones pueden avanzar más lentamente. Y en lugar de tener que hacer una actualización muy grande, ahora puedes actualizar las versiones cuando tenga sentido hacerlo para el movimiento de tu equipo. Entonces, ¿cómo usamos los UMDs dentro de nuestro paquete? Hacer referencia a ellos se reduce a las herramientas de agrupamiento. Comenzaremos con Webpack. Webpack tiene una propiedad llamada externals. Los externals nos permiten cargar esos UMDs que se han colocado en el ámbito global del disco haciendo referencia a ellos mediante su nombre de módulo. Al usar su nombre de módulo, le decimos a Webpack que no queremos agrupar este módulo de nodo más. En su lugar, queremos hacer una referencia a ese módulo de nodo en este espacio de nombres global del disco correspondiente. El beneficio de hacerlo de esta manera es que cuando estamos probando con algo como Jest o VTest, aún podemos usar ese módulo de nodo para ejecutar nuestras pruebas. No es necesario que haga referencia al código específico del navegador si no queremos. Esto significa que nuestras pruebas y simulaciones son mucho más sencillas que si siempre dependiéramos del espacio de nombres global del disco. Ahora veamos cómo podría ser una configuración de rollup para esto. En rollup, esas dos cosas de las que hablamos que Webpack maneja en los externals se dividen en dos opciones de configuración separadas.
Casi todos los agrupadores lo admiten y permiten que esos agrupadores den un nombre específico a un paquete de código que luego terminará en el ámbito global del disco en el navegador. El beneficio de esto es que ahora podemos hacer referencia a ese módulo utilizando el espacio de nombres global del disco que ocupa para traerlo sin tener que agrupar esa dependencia en nuestro otro código.
El ejemplo con el que vamos a trabajar hoy es Meltwater Visualizations. Y notarás que cuando hablamos de hacer un nombre para este paquete UMD, incluimos ese sufijo de una versión principal. En este caso, la versión principal 14 de Meltwater Visualizations. La razón de esto es que cuando hacemos referencia a una versión principal, nos permite cargar múltiples versiones principales de la misma dependencia en la página al mismo tiempo. Ahora, es posible que pienses que eso parece una mala idea, y estoy de acuerdo contigo. Pero también hay beneficios al poder hacer eso. Cuando tienes muchas dependencias entrelazadas, no todas podrán avanzar al mismo ritmo.
Actualizar una dependencia, como visualizations, a la versión 14 cuando otras personas dependen de la versión 13 podría significar que todos tengan que actualizar al mismo tiempo y hacer una actualización muy grande. Pero si puedes cargar Meltwater Visualizations 13 y Meltwater Visualizations 14 al mismo tiempo, les das a esos otros equipos la oportunidad de actualizar a su propio ritmo, a un ritmo razonable que tenga sentido para la carga de trabajo que tienen. Y eso significa que las versiones pueden avanzar más lentamente. Y en lugar de tener que hacer una actualización muy grande, ahora puedes actualizar las versiones cuando tenga sentido hacerlo para el movimiento de tu equipo.
Ahora, esto no significa que no debas tener cuidado con mucha duplicación de código, eso es cómo llegamos aquí en primer lugar. Pero sí significa que hace que esa ruta de actualización sea mucho más fluida en muchos equipos diferentes. Entonces, ¿cómo usamos los UMDs dentro de nuestro paquete? Hacer referencia a ellos se reduce a las herramientas de agrupamiento. Comenzaremos con Webpack. Webpack tiene una propiedad llamada externals. Los externals nos permiten cargar esos UMDs que se han colocado en el ámbito global del disco haciendo referencia a ellos mediante su nombre de módulo. Al usar su nombre de módulo, le decimos a Webpack que no queremos agrupar este módulo de nodo más. En su lugar, queremos hacer una referencia a ese módulo de nodo en este espacio de nombres global del disco correspondiente.
Entonces, aquí están sucediendo un par de cosas. Uno, se le dice a Webpack que ignore la agrupación de ese nombre de módulo, y dos, ese nombre de módulo se configura para que corresponda a un objeto de espacio de nombres global del disco que debería existir. El beneficio de hacerlo de esta manera es que cuando estamos testing con algo como Jest o VTest, aún podemos usar ese módulo de nodo para ejecutar nuestras pruebas. No es necesario que haga referencia al código específico del navegador si no queremos. Esto significa que nuestras pruebas y simulaciones son mucho más sencillas que si siempre dependiéramos del espacio de nombres global del disco. El beneficio aquí son configuraciones de prueba más fáciles, más fáciles de debug, y tu código local se ejecuta de la manera que esperarías. Es maravilloso saber que podemos usar el módulo de NPM para testing local y saber que actuará de la misma manera que cuando está implementado.
Ahora veamos cómo podría ser una configuración de rollup para esto. En rollup, esas dos cosas de las que hablamos que Webpack maneja en los externals se dividen en dos opciones de configuración separadas.
Comments