Configuración proyecto monorepo
Un proyecto monorepo es un repositorio único que contiene múltiples proyectos o paquetes relacionados en lugar de dividirlos en repositorios separados (multirepo). Se utiliza para gestionar código compartido entre distintas partes de una aplicación, mejorar la colaboración y facilitar la administración de dependencias.
1. Creamos un proyecto monorepo:
npx create-turbo@latest .
- La carpeta apps contendrá una carpeta por cada una de las aplicaciones que se van a generar. Estas carpetas contienen el código específico de cada aplicación. Por ejemplo, si fueramos a desarrollar una aplicación para un profesor y una aplicación para un alumno, tendríamos dentro de apps la carpeta teacher y la carpeta student.
- La carpeta packages contiene el código compartido entre las aplicaciones.
Instalación de dependencias
A la hora de instalar módulos, el comando npm siempre se ejecutará desde la raíz del monorepo. Este comando accederá a los ficheros package.json de las aplicaciones individuales y del código común y descargará automáticamente lo que corresponda en la carpeta correcta.
La aplicación de Teacher cargará el módulo almacenado en la carpeta packages e identificado con el nombre api.
└── application/
└── apps/
└── teacher/
└── package.json ("dependencies": {"@chat/api": "*")
.
└── application/
├── apps
└── packages/
└── api/
└── package.json ({"name": "@chat/api")