¿Cuándo usar?
- Empiezas un proyecto completamente nuevo
- Tu equipo necesita workspace independiente
- Quieres estructura completa desde cero
Objetivo: Generar código base consistente usando el sistema integrado de templates con Plop.js
graph TD
A[cd proyecto-vue] --> B[npx plop]
B --> C{¿Qué necesitas?}
C --> D[Workspace Completo]
C --> E[Microfrontend Específico]
C --> F[Librería Específica]
D --> G[Copiar a nuevo repo]
E --> H[Copiar a repo existente]
F --> H
G --> I[pnpm install]
H --> I
I --> J[¡Listo para desarrollar!]
style D fill:#e1f5fe
style E fill:#f3e5f5
style F fill:#e8f5e8
🎯 Beneficios del sistema integrado:
Clonar proyecto-vue:
git clone https://github.com/Kompa-s/proyecto-vue.gitcd proyecto-vueInstalar dependencias:
pnpm installpnpm -r buildVerificar que funciona:
npx plop --version # Debe mostrar versión de Plopproyecto-completo¿Cuándo usar?
¿Qué genera?
microfrontend-integrado
¿Cuándo usar?
window.__params del hostGenera: @apps/mi-micro/ completo
microfrontend-independiente
¿Cuándo usar?
Genera: @apps/mi-spa/ completo
libreria-vue
¿Cuándo usar?
Genera: packages/vue-mi-lib/ completo
libreria-utils
¿Cuándo usar?
Genera: packages/mi-utils/ completo
Generar workspace completo:
cd proyecto-vuenpx plop# Seleccionar: proyecto-completo# Nombre: "mi-empresa-frontend"# Incluir types: Sí# Incluir utils: SíCopiar a tu repositorio:
Copy-Item -Recurse ./mi-empresa-frontend/* /ruta/a/mi/nuevo/repo/cd /ruta/a/mi/nuevo/repoSetup inicial:
pnpm installpnpm buildCrear tu primer microfrontend:
npx plop # Ahora usa templates copiados# Seleccionar: microfrontend-integradoGenerar componente específico:
cd proyecto-vuenpx plop# Seleccionar: microfrontend-integrado# Nombre: "flight-booking"Copiar a tu proyecto real:
Copy-Item -Recurse @apps/flight-booking ../mi-proyecto-real/@apps/Configurar en tu proyecto:
cd ../mi-proyecto-real# Agregar al package.json: "app-flight-booking": "pnpm --filter flight-booking"pnpm installDesarrollar:
pnpm app-flight-booking devGenerar librería:
cd proyecto-vuenpx plop# Seleccionar: libreria-vue# Nombre: "vue-date-picker"Copiar a tu proyecto real:
Copy-Item -Recurse packages/vue-date-picker ../mi-proyecto-real/packages/Configurar y usar:
cd ../mi-proyecto-real# Agregar al package.json: "lib-vue-date-picker": "pnpm --filter vue-date-picker"pnpm installpnpm lib-vue-date-picker buildEl generador incluye validaciones para mantener consistencia:
| Validación | Descripción | Error ejemplo |
|---|---|---|
| Nombres únicos | Verifica que no existe en @apps/ o packages/ | Ya existe un microfrontend con el nombre "review" |
| Formato kebab-case | Solo minúsculas y guiones | Use formato kebab-case (ejemplo: mi-proyecto) |
| Prefijo vue- | Librerías Vue deben comenzar con vue- | Las librerías Vue deben comenzar con "vue-" |
| Descripción mínima | Al menos 10 caracteres | La descripción debe tener al menos 10 caracteres |
cd proyecto-vuegit pull origin mainpnpm install # Si hay nuevas dependenciasEl equipo de arquitectura mantiene actualizados:
proyecto-vue clonado y actualizado (git pull)pnpm install ejecutado en el nuevo repopnpm build completado exitosamentenpx plop)package.json del proyecto realpnpm install ejecutadopnpm app-{nombre} dev o pnpm lib-{nombre} build)