Video Summary and Transcription
La charla se centra en el comando de lanzamiento de Nx para publicar paquetes npm en una configuración de monorepo. Asegura el orden correcto de publicación de paquetes, maneja la versionado y los registros de cambios, y permite simular cambios antes de la publicación. Las características avanzadas incluyen la versionado configurable, las publicaciones en grupo y el soporte para diferentes idiomas. Hay documentación, videos y recetas disponibles para personalizar y automatizar las publicaciones en tu sistema de CI.
1. Introducción al comando de lanzamiento de Nx
Me centraré en el comando de lanzamiento de Nx para publicar paquetes npm en una configuración de monorepo. Asegura que los paquetes se publiquen en el orden correcto y maneja la versión y los registros de cambios. Puedes ejecutar el comando 'Nx release' para simular y ver los cambios antes de publicar. Usa el comando 'Nx set up Verdasho' para crear un registro local de npm Verdasho para realizar pruebas.
Así que tenemos siete minutos. Ni siquiera preparé diapositivas. Ahora, podría mostrarte cómo pasamos de ser un desarrollador 10x a ser un desarrollador Nx, pero no tenemos suficiente tiempo. Mi nombre es Juri. Soy miembro del equipo principal de Nx. Hacemos muchas cosas, desde el desarrollo local hasta CI, así que tenemos mucho soporte.
Lo que quiero enfocar es el comando de lanzamiento de Nx que lanzamos hace medio año aproximadamente al público, y básicamente se trata de publicar paquetes npm. Aquí tengo un espacio de trabajo local de npm, así que si voy al archivo package JSON, puedes ver que aquí hay una versión de Nx instalada, hay un espacio de trabajo de npm configurado en un paquete en ejemplos, y si ejecuto un gráfico de Nx, que puedes ejecutar en cualquier espacio de trabajo incluso si no tienes Nx instalado, te mostrará cómo se ve la estructura. Está inspirado en 10-sec query que utiliza Nx para desarrollar sus paquetes. Espero que Dominic no esté viendo esto porque no hay lógica aquí.
Quiero mostrar lo que significa versionar, generar registros de cambios y publicar este tipo de paquetes. Hay soluciones disponibles, pero generalmente carecen un poco cuando se trata de una configuración de monorepo. Hay algunas dependencias allí, especialmente si hablamos de versiones, pero incluso en el proceso de publicación, si enviamos estos paquetes a npm, no queremos enviar un paquete que queremos enviar en el orden correcto porque no queremos tener una dependencia que aún no se haya publicado. ¿Cómo funciona? Básicamente, puedes ejecutar un solo comando que es un lanzamiento de Nx. Este es nuestro primer lanzamiento porque aún no tenemos uno. Luego ejecutas menos D que es el modo de simulación. Quiero hacer una prueba en seco para ver qué sucede. Recorre el paquete que tienes. Sí, queremos lanzar una versión principal. Como puedes ver, imprime una diferencia de lo que sucedería, por lo que incrementa la versión en consecuencia. También actualiza las dependencias locales que puedas tener en ese espacio de trabajo y genera un registro de cambios si es necesario generarlo. Básicamente, puedo eliminar ese menos D. Ejecutar nuevamente la versión principal y continuar y crear eso. El primer paso aquí abajo, pide la publicación. No quiero enviar eso a npm, pero lo que podemos hacer aquí es que he configurado un registro local de npm Verdasho. Puedes hacer eso. Tenemos un generador que te ayuda a configurarlo. Si ejecutas Nx set up Verdasho, lo creará para ti, y ahora podemos ejecutar algo como registro local. Escribir con esta inclinación es bastante interesante. Este sería nuestro Verdasho local.
2. Funciones avanzadas de lanzamiento de Nx
En un escenario del mundo real, puedes configurar la versión, incluyendo la versión independiente y las versiones de GitHub. Nx release admite lanzamientos grupales y se puede extender a diferentes lenguajes. Hay documentación disponible con lanzamientos gestionados, videos explicativos y recetas para personalizar y automatizar los lanzamientos en tu sistema de CI.
Lo eliminé de inmediato, así que está bastante claro. Esto se ejecuta ahora y reescribe todas mis publicaciones locales, así que puedo acceder y luego implementarlo en esta instancia local de Verdasho. De hecho, si vuelvo, puedes ver los paquetes reales que aparecen allí.
En un escenario del mundo real, no quieres ir y especificar manualmente cada vez qué versión quieres incrementar, ya sea una versión principal o no, por lo que existe la posibilidad en el archivo NxJSON de configurar parte de eso, y puedo avanzar aquí, por ejemplo, pegar, digamos, Semver. ¿A dónde va? Déjame escribirlo entonces. Va a obtener ... Entonces, tenemos la versión, y dices semantic versioning, es verdadero. En ese caso, puedo ir a React query, por ejemplo, digamos, aquí tenemos algo de lógica pequeña que queremos implementar. Console lock, sí, eso funciona. Entonces decimos, como, hay una característica, React query. Algo así. Ahora, si ejecutas NxRelease nuevamente, simplemente ejecútalo, detecta automáticamente que es una actualización menor que hemos realizado, por lo que la versión que obtendrás es 1.1.0, y podemos decir que queremos publicar esto, y también obtenemos aquí un registro de cambios en la raíz que está en esta representación. Ahora, hay algunas opciones más que puedes configurar allí. Puedes definir cuál es la relación de producto real aquí, por ejemplo, si es algo que quieres fijar en la versión para que todos los paquetes se incrementen al mismo tiempo, si quieres tener una versión independiente e incluso cosas como tener lanzamientos de GitHub al mismo tiempo que se empujan en lugar de solo npm. Esto es de nuestro propio repositorio de Nx en GitHub, por lo que este es el formato que ves en GitHub donde ves el enlace de comentarios, ves en la parte inferior también el enlace de los contribuyentes para ese lanzamiento específico, por lo que se etiquetan, se informan. Es bastante agradable, una comunidad de código abierto para asegurarse de que esas personas estén informadas. Puedes hacer más cosas en el sentido de tener lanzamientos grupales, lo cual es bastante interesante, por ejemplo, en este caso, tenemos, si miras, partes más relacionadas con React, tenemos un sólido aquí, y más partes principales, por lo que incluso podrías decir que quieres tener algún tipo de grupos de lanzamiento. Veamos si los fragmentos funcionan esta vez, sí, lo hacen. Podrías decir que tengo grupos donde el sólido incluye este tipo de proyectos, y ellos deberían tener una versión de una manera determinada, por lo que puedes versionarlos de forma independiente y publicarlos . Estas son algunas de las funciones que implementamos en esa versión de lanzamiento de Nx. En este momento, uno de los paquetes que admitimos es JavaScript, pero puedes extenderlo por tu cuenta. El proceso general de versión y publicación. Incluso tenemos uno para Rust, y se puede extender a otros lenguajes también. Hay muchas funciones y cosas que te mostré hoy en nuestra documentación, por lo que hay lanzamientos gestionados en general que tienen un video explicativo, y también aquí abajo, ves una serie de recetas diferentes para personalizar y automatizar los lanzamientos en tu sistema de CI, cómo hacer el soporte de procedencia de NPM, y esos tipos de cosas que querrías tener en una forma de publicación de paquetes de código abierto. Bien, eso es todo. Eso es todo lo que puedo mostrarte hasta ahora. Todavía estamos fuera del stand, así que si quieres echar un vistazo y venir a profundizar un poco más, estaré encantado de responder preguntas. Gracias. .
Comments