# Nx ## Qué es Un repositorio donde podemos tener varias aplicaciones, librerías de angular y brujerías donde comparten el mismo package.json Este repositorio admite un montón de aplicaciones distintas, desde un backend mockeado hecho con msw o una librería genérica de javascript ## Ventajas - Misma versión de librerías externas, angular, etc.. en todas las aplicaciones/librerías - Cuando se deba actualizar sólo lo debemos actualizar las apps y libs de este repo. Las modificaciones de código se deberán hacer igual que antes pero ahora no nos olvidaremos de ningún repositorio y sólo deberemos hacerlo una vez - Odin: mucho más rápido a la hora de desarrollar - Odin2: a la hora de debuggear errores en odin es muchísimo más sencillo - Al tener todos los proyectos en un mismo workspace se mergeará la épica relacionada de todos los proyectos a la vez (por ejemplo en los proyectos de los cuestionarios externos fue un poco caos esto) - La estructura interna del proyecto no cambia, con lo que no hay fricción en este sentido. - Rendimiento: parece que la caché de nx es mejor que la de cli ## Inconvenientes - La fricción que puede suponer al principio a acostumbrarse a la nueva estructura de Nx - Dockerfile: sin investigar ## Estimación de lo que queda - Dockerfile - Mover el repo - Actualizar midagard y odin en el workspace actual - Migrar Nidavellir y Asgard - Creemos que dos días serían suficientes ## Notas: - ¿ Sería recomendable tenerlo para el proyecto de las tareas ? Ya que vamos a tener que hacer cosas en Asgard... ## Para el futuro - Investigar como realizar el ci en gitlab porque solo tendremos un repo y distintas apps a compilar, desplegar, etc - Investigar qué tipos de caché y de builds tiene Nx como el incremental builds: https://nx.dev/recipe/setup-incremental-builds-angular y si esto hace que mejore - Se podrá exportar un módulo entero de una aplicación ?? porque si pudiéramos exportar el shared module de Midgard lo mismo sería interesante crear una micro app para los pacs nuevos. - Module federation. - Jest ?