Entonces, las bibliotecas, diferentes tipos de bibliotecas. Así que simplemente generamos una aplicación sin ninguna biblioteca. Entonces, las bibliotecas, puedes nombrar las bibliotecas como quieras. Pero encontramos que típicamente hay cuatro tipos diferentes de bibliotecas que la gente tiene, una biblioteca de características, que es como una página o algo así como una característica de nivel superior. Una biblioteca de interfaz de usuario, que serían componentes de presentación que se pueden reutilizar en muchos lugares diferentes. Bibliotecas de acceso a datos, que manejan cosas como obtener datos de una base de datos o hacer llamadas a la red, almacenar y almacenamiento local, ese tipo de cosas. Y luego, las bibliotecas de utilidades, que son funciones y constantes puras de JavaScript. cosas así.
Y típicamente, tienes bibliotecas de características que pueden usar cualquiera de las otras bibliotecas. Las bibliotecas de interfaz de usuario solo pueden importar otras bibliotecas de interfaz de usuario o bibliotecas de utilidades. Y las bibliotecas de acceso a datos solo pueden usar otras bibliotecas de acceso a datos o bibliotecas de utilidades. Y luego, las bibliotecas de utilidades solo pueden importar otras bibliotecas de utilidades. Así que tienes esta estructura establecida para cómo configuras las cosas. Las bibliotecas también se pueden anidar en carpetas. Entonces, típicamente, si tienes una aplicación de almacenamiento, tendrías todas las bibliotecas que están destinadas a ser solo para esa aplicación dentro de una carpeta de almacenamiento dentro de libs. Y luego, las bibliotecas que están destinadas a ser compartidas en todo el repositorio debajo de una carpeta compartida. Pero puedes mover las bibliotecas fácilmente. Así que no tienes que preocuparte demasiado por dónde las colocas inicialmente. Tenemos un generador para mover las cosas. Y puedes tener tu propia estructura, por supuesto.
La gente a menudo nos pregunta cuándo deberían dividir el código en una nueva biblioteca. Y ¿cuándo tengo demasiadas bibliotecas? Como cualquier cosa, esto es un compromiso. Cada operación que realiza NX es a nivel de biblioteca o proyecto. Entonces, cuanto más dividas el código en múltiples proyectos, más podrás aprovechar el almacenamiento en caché de NX o la generación de código de NX, cosas así, y el comando efectivo, ese tipo de cosas. Entonces, si tuvieras todo dentro de un solo proyecto de aplicación, entonces no hay mucho sentido en usar NX. No hay mucho uso en eso. Pero por otro lado, si pones cada componente en su propia biblioteca, eso probablemente sea demasiado, porque eso tiene un costo. Estás generando más carpetas y luego, cada vez que haces cambios en el código, tienes que buscar en muchas carpetas diferentes para entender qué está pasando. Entonces, al igual que cualquier otra cosa, quieres mantener juntos el código que tiene sentido juntos, pero cuando comienza a crecer, es cuando divides las cosas en múltiples bibliotecas. Así que puedes visualizar el gráfico de tu proyecto para ver cuál es la estructura de tu repositorio. Este es el propio repositorio de NX. Aquí hay un video. Curioso con esta decisión. De acuerdo, puedes agrupar cosas, puedes filtrar las cosas y asegurarte de que solo se muestren partes específicas del gráfico. Entonces, con cualquier repositorio de tamaño razonable, obtendrás cientos de nodos. Y en ese punto, una representación estática del gráfico es completamente inútil. Entonces, necesitas tener algún tipo de filtrado como este para poder usar el gráfico tú mismo y obtener algún valor de él. Así que, eso.
Y luego creo, bueno, así que pasamos al laboratorio cuatro. En realidad, una pequeña desviación aquí. En realidad, una pequeña desviación aquí, laboratorio 3.1, migraciones. Entonces, migraciones. Los NxGenerators no solo se utilizan para generar nuevo código. También puedes usarlos para mantener el código de las personas sincronizado. Como autor de una biblioteca, puedes usarlos para mantener el código de las personas sincronizado. Cada vez que realices un cambio que rompa la compatibilidad, puedes lanzar una migración que mantendrá a las personas actualizadas con la última versión de tu biblioteca. NX hace esto para todos nuestros complementos proporcionados. Entonces, puedes ejecutar NxMigrate, y eso actualizará todo tu código a la última versión de Nx. Luego puedes ejecutar los scripts de migración en sí. Luego, cualquier cambio que rompa la compatibilidad que haya sido realizado por nuestros complementos se migrará automáticamente por ti. Entonces, facilita mucho mantenerse actualizado a la última versión de las cosas. Entonces, estamos usando la misma herramienta para saltar a diferentes partes de la masterclass. Diferentes laboratorios en la masterclass. Entonces, si alguna vez te quedas atrás, puedes instalar este paquete NARAL nxreact-workshop, y luego puedes ejecutar las migraciones aquí. Así que voy a demostrar eso rápidamente. Así que voy a hacer yarn add-d al taller. Y luego voy a ejecutar. Bueno, esto sugiere que agreguemos el más antiguo, pero acabo de agregar el último. Entonces, si esto fuera, si esto fuera, si agregara uno antiguo, podría ejecutar xmigrate, simplemente ejecutaría xmigrate. Eso hará todo en tu package JSON. xmigrate. Puedes hacer xmigrate latest. Eso hará todo. Oh, no. Bueno, está bien. Bueno, supongo que verás qué hace esto. Entonces, si haces un xmigrate latest, hace todo. Entonces, aparentemente, durante nuestro taller en la última hora, publicaron 16.2.1, que probablemente sea por qué CreateNX workspace estaba haciendo cosas extrañas. Y así podrás ver qué sucede cuando actualizamos. Entonces, creó algunos scripts de migración en este archivo migration.json. Elimina la ruta de salida para los comandos de ejecución. Normaliza, hace algunas cosas con Cypress, y arregla el renderizador de pruebas de React. De acuerdo, esas cosas, seguro.
Comments