hola, soy nuevo en el mundo de monorepos y ahora estoy buscando diferentes herramientas de monorepos y encontré dos herramientas interesantes, Nx (nrwl) y lerna, pero no entendí la diferencia real entre estas dos herramientas, así que cualquier ayuda y gracias.
Aunque ambas son excelentes herramientas para trabajar con repositorios mono, son bastante diferentes en su propósito.
Lerna se enfoca en vincular varios paquetes del mismo proyecto y administrar la publicación de npm, y eso es todo .
Nx está más enfocado en administrar el flujo de trabajo de desarrollo para múltiples paquetes. Significa que puede montar paquetes, y para cada paquete, puede definir configuraciones sobre cómo ejecutarlos y compilarlos, de manera similar a Webpack.
Nx también puede funcionar para generar múltiples procesos a la vez. Por ejemplo: ejecutar frontend y backend al mismo tiempo, sin necesidad de abrir dos terminales diferentes. Similar a docker-compose.
Lerna se adapta mejor a proyectos de código abierto con múltiples paquetes (porque puede publicar fácilmente sus paquetes).
Nx se adapta mejor a la gestión de flujos de trabajo complejos con varios paquetes.
Nx podría ser una mejor opción.Lerna es definitivamente el camino a seguir.Nx y administrar la publicación manualmente. O, tal vez, use Lerna y configure el flujo de trabajo manualmente con Webpack. Alguien puede preguntarse si podría elegir ambos, pero no creo que puedan funcionar bien juntos. En el momento en que escribo esto, a Nx no parece importarle ser compatible con Lerna , y Nx todavía carece de soporte para publicación fácil.
NPM - Node Package Manager).Lerna usa el nombre "proyecto" como la carpeta contenedora de todos sus paquetes. Por lo general, un repositorio git es un "proyecto Lerna" con varios "paquetes Lerna".Nx usa el nombre "proyecto" para designar lo que Lerna llama "paquetes", y usa el nombre "espacio de trabajo" para designar lo que Lerna llama "proyecto" (es decir, la carpeta contenedora que contiene todos los proyectos).