🧪 Solo Quiero Aprender
Tu situación:
- Experimentar con la arquitectura
- Familiarizarte con el stack
- Pruebas locales sin commits
Tiempo estimado: 20 minutos
Objetivo: En 30 minutos tendrás un microfrontend funcional según tu escenario específico
Prerrequisitos: Setup del Entorno completado ✅
🧪 Solo Quiero Aprender
Tu situación:
Tiempo estimado: 20 minutos
🆕 Empiezo de Cero
Tu situación: - Nuevo proyecto/equipo - Necesitas workspace completo - Quieres toda la estructura base Tiempo estimado: 15 minutos 👉 Ir al Escenario B
➕ Tengo Proyecto Existente
Tu situación:
Tiempo estimado: 10 minutos
Para: Desarrolladores que quieren familiarizarse con la arquitectura
Ver estructura actual:
cd proyecto-vueGet-ChildItem @apps/ # Ver microfrontends de ejemploGet-ChildItem packages/ # Ver librerías compartidasEjecutar ejemplo existente:
# Si hay ejemplos pre-existentespnpm app-{ejemplo} dev# Explorar en http://localhost:5173Inspeccionar código:
code @apps/{ejemplo}/src/# Estudiar: store, componentes, configuraciónGenerar microfrontend de prueba (en proyecto-vue):
npx plop# Seleccionar: microfrontend-integrado# Nombre: mi-experimento# Descripción: Prueba de aprendizajeAgregar script temporal: Editar package.json raíz de proyecto-vue:
{ "scripts": { "app-mi-experimento": "pnpm --filter mi-experimento" }}Ejecutar y experimentar:
pnpm installpnpm app-mi-experimento devProbar diferentes configuraciones:
window.__params en el HTMLCrear librería de prueba:
npx plop# Seleccionar: libreria-vue# Nombre: vue-mi-experimentoIntegrar librería en microfrontend:
Para: Equipos que empiezan un proyecto completamente nuevo
Ir al generador (siempre desde proyecto-vue):
cd proyecto-vuegit pull origin main # Obtener últimas actualizacionesEjecutar generador:
npx plopSeleccionar: proyecto-completo
Completar prompts:
? Nombre del proyecto/workspace: mi-empresa-frontend? Descripción del proyecto: Sistema de microfrontends para Mi Empresa? Nombre del equipo: Frontend Team? ¿Incluir package de tipos TypeScript? Sí? ¿Incluir package de utilidades generales? SíResultado:
🎉 ¡Workspace generado exitosamente!📁 Ubicación: ./mi-empresa-frontend/Copiar workspace a tu repositorio (SIN templates):
# Crear tu nuevo repositoriomkdir /ruta/a/mi-nuevo-repocd /ruta/a/mi-nuevo-repogit init
# Copiar SOLO el contenido del workspace generadoCopy-Item -Recurse ../proyecto-vue/mi-empresa-frontend/* ./Setup inicial:
pnpm installpnpm buildVerificar que funciona:
pnpm lint # Debe pasar sin errorespnpm format # Debe formatear archivosGenerar microfrontend (volver a proyecto-vue):
cd ../proyecto-vue # ← SIEMPRE volver aquí para generarnpx plop# Seleccionar: microfrontend-integrado# Nombre: flight-search# Descripción: Buscador de vuelos integradoCopiar a tu workspace:
Copy-Item -Recurse @apps/flight-search ../mi-nuevo-repo/@apps/cd ../mi-nuevo-repoConfigurar script: Agregar al package.json raíz de tu workspace:
{ "scripts": { "app-flight-search": "pnpm --filter flight-search" }}Ejecutar en desarrollo:
pnpm installpnpm app-flight-search devVerificar funcionamiento:
http://localhost:5173Para: Equipos que ya tienen workspace funcionando y necesitan agregar componentes
Ir al generador (siempre desde proyecto-vue):
cd proyecto-vuegit pull origin mainGenerar microfrontend:
npx plop# Seleccionar: microfrontend-integrado# Nombre: hotel-booking# Descripción: Sistema de reserva de hoteles# URLs CDN: usar defaultsVerificar generación:
Get-ChildItem @apps/hotel-booking/# Debe mostrar: src/, package.json, vite.config.ts, etc.Copiar microfrontend completo:
Copy-Item -Recurse @apps/hotel-booking ../mi-proyecto-real/@apps/cd ../mi-proyecto-realAgregar script al workspace: Editar package.json raíz de tu proyecto:
{ "scripts": { "app-hotel-booking": "pnpm --filter hotel-booking" }}Instalar dependencias:
pnpm installDesarrollar:
pnpm app-hotel-booking devAdaptar configuración: Editar @apps/hotel-booking/.env.development:
VITE_USE_MOCKS = "true"VITE_IS_DEBUG = "true"VITE_I18_PATH = "https://test.XXXXX.com/i18n/hotel-booking"VITE_API_URL = "https://test-api.XXXXX.com/api"Personalizar lógica de negocio:
src/stores/productStore.ts a tu dominiosrc/components/ProductList.vue según tu UIsrc/global.ts con tus tipos específicosBuild para producción:
pnpm app-hotel-booking build# Archivos listos en: @apps/hotel-booking/dist/Has completado el Quick Start exitosamente. Según tu escenario, ahora tienes:
Profundizar en conceptos: 🧠 Conceptos Clave - Arquitectura y filosofía
Workflows diarios: 💻 Desarrollo Día a Día - Patrones y herramientas cotidianas
Referencia técnica: 📚 Referencias - Configuraciones detalladas
Casos específicos: 🌳 Decision Tree - Qué template usar según tu caso
¡Perfecto! Es el comportamiento esperado. Este escenario es solo para experimentos locales en proyecto-vue.
Usa Escenario B (workspace completo) o C (código específico) cuando estés listo.
cd tu-nuevo-repopnpm -r build # Build packages primeropnpm app-{nombre} dev# SIEMPRE volver a proyecto-vue para generarcd ../proyecto-vuenpx plop → microfrontend-integradoCopy-Item -Recurse @apps/nuevo-componente ../mi-nuevo-repo/@apps/# Verificar que el componente se generó correctamenteGet-ChildItem @apps/mi-componente/Copy-Item -Recurse @apps/mi-componente ../mi-proyecto-real/@apps/# Verificar workspace TypeScript# VS Code: Ctrl+Shift+P → "TypeScript: Select Version" → "Use Workspace Version"# Los templates siempre están actualizados en proyecto-vuecd proyecto-vuegit pull origin main # Obtener últimas mejorasnpx plop # Generar con templates actualizados