También veremos eso en acción en nuestra demostración en vivo muy pronto. Por último, pero no menos importante, Tuburepo no tiene sobrecarga en tiempo de ejecución, lo que significa que Tuburepo es solo una dependencia de desarrollo. No envía nada a tu code cuando va a producción. De hecho, todos tus paquetes, ni siquiera saben que Tuburepo existe, porque Tuburepo solo existe a nivel del monorepo, y todos tus paquetes son completamente independientes y desconocen por completo a Tuburepo en tu paquete.
Así que basta de hablar. Vamos directo a nuestra demostración en vivo. Aquí tenemos el enlace para nuestro repositorio. No tienes que code a lo largo, solo sígueme en la pantalla. Pero al final, si quieres darle un inicio al repositorio, siéntete libre.
Bien, así que estamos aquí en nuestro VS code, y tengo aquí un repositorio de demostración que preparé para esta charla. Aquí tenemos un monorepo utilizando Tuburepo como base. En este monorepo, estoy usando pnpm para administrar los paquetes, pero también podrías usar yarn o npm de la misma manera. Así que echemos un vistazo, hagamos un pequeño recorrido por el monorepo y entendamos cómo podemos componer esos paquetes.
Aquí, a nivel raíz, tenemos un archivo package.json. Justo el mismo archivo package.json que estás acostumbrado a ver en todos los proyectos de JavaScript o TypeScript. La única diferencia aquí es que en un monorepo, en realidad tienes tareas y dependencias declaradas aquí que están destinadas solo para el monorepo. Vale, vamos a echar un vistazo a las tareas específicas más adelante. Aquí tengo una carpeta de paquetes con un montón de todos los paquetes. Así que tenemos como una colección de paquetes aquí. El primero es yes-lint-config, es básicamente como este yes-lint-config común que puedo compartir en todos mis paquetes en nuestro monorepo. Luego tenemos un ts-config, es básicamente nuestra configuración de TypeScript que también se comparte en paquetes y aplicaciones. Luego tenemos una biblioteca de UI, es básicamente nuestro sistema de design, digamos. Es una biblioteca muy pequeña solo para esta demostración, pero verás eso en acción muy pronto. Y luego encima de eso, tenemos la carpeta de aplicaciones. Y ahí es donde segregamos nuestras aplicaciones de una manera separada. Así que tenemos aplicaciones y paquetes, eso está más destinado a bibliotecas, y luego aplicaciones, puedes construir una imagen de docker, por ejemplo, puedes desplegar en un entorno serverless y así sucesivamente. No importa realmente. En este caso, tenemos dos aplicaciones. Tenemos la aplicación Shop, que es nuestra aplicación Next JS, donde los clientes van a comprar camisetas. Y luego tenemos nuestra aplicación de administración.
Comments