Yeoman
- Automatizacion y Build
- JHipster
Descripción general
Yeoman es un ecosistema de herramientas para scaffolding y automatización de proyectos, especialmente orientado a proyectos node.js y flujos de trabajo de frontend y tooling. Su objetivo principal es generar estructuras de proyecto consistentes, acelerar el arranque de nuevos desarrollos y estandarizar buenas prácticas.
Se compone principalmente de:
- yo: CLI principal
- Generators: paquetes que definen cómo se crea un proyecto o módulo
- Ecosistema npm: distribución y versionado de generadores
Casos de uso principales
- Creación rápida de proyectos base
- Proyectos legacy que requieren estructura inicial reproducible
- Automatización de setups repetitivos
- Geners y scaffolding para equipos grandes
- Integración con sistemas de build y automatización como gulp y Automatizacion y Build
Proyectos legacy y contexto histórico
Yeoman fue especialmente popular en:
- Ecosistemas frontend pre-React/Vue/Angular CLI
- Proyectos empresariales legacy
- Flujos de trabajo basados en gulp y Grunt
En proyectos legacy modernos puede convivir con:
- JHipster para aplicaciones full-stack
- Integraciones con sistemas antiguos como visual basic VBA
- Generación de plantillas para herramientas corporativas
Arquitectura de Yeoman
Componentes principales
-
yo (CLI)
Herramienta de línea de comandos que ejecuta generadores - Generator
Paquete npm que define:- Preguntas al usuario
- Plantillas
- Archivos generados
- Hooks y pasos de ejecución
- Environment
Contexto de ejecución que gestiona dependencias y ejecución de generadores
Generadores (Generators)
Tipos de generadores
- Generadores de proyectos completos
- Generadores de módulos o features
- Generadores internos (subgenerators)
Ejemplos relevantes
- GitHub - thecodercoder/generator-gulp-sass-boilerplate
- GitHub - OfficeDev/generator-office: Yeoman generator for building Microsoft Office related projects.
Estructura típica de un generador
generators/app/index.jstemplates/
package.jsonREADME.md
Folders para extensiones
Los generadores pueden extenderse mediante:
- Subgeneradores
- Carpetas adicionales dentro de
generators/ - Hooks para post-instalación
Esto permite:
- Modularidad
- Reutilización de lógica
- Escalabilidad en proyectos grandes
Integración con Node.js y tooling
Yeoman está profundamente integrado con:
Se utiliza frecuentemente como capa inicial antes de:
- Configuración manual
- Pipelines CI/CD
- Personalización avanzada
Automatización y build
Yeoman no reemplaza herramientas de build, sino que:
- Genera la estructura inicial
- Configura tareas
- Deja el proyecto listo para Automatizacion y Build
Puede generar:
- Archivos de configuración
- Scripts npm
- Pipelines base
Generador Office
Uso en entornos Microsoft
El generador oficial permite crear:
- Add-ins de Office
- Integraciones con Excel, Word, Outlook
- Proyectos empresariales con tooling moderno
Repositorio:
Documentación oficial
Guías principales
-
[Getting started with Yeoman Yeoman](https://yeoman.io/learning/) -
[Generators Yeoman](https://yeoman.io/generators/) -
[Writing Your Own Yeoman Generator Yeoman](https://yeoman.io/authoring/)
Recursos adicionales
Ventajas
- Estandarización de proyectos
- Ahorro de tiempo
- Ecosistema amplio de generadores
- Integración sencilla con tooling existente
Limitaciones
- Menor adopción en proyectos modernos frontend
- Curva de aprendizaje para crear generadores
- Alternativas más especializadas (CLI de frameworks)
Relación con herramientas modernas
Yeoman suele utilizarse hoy en:
- Proyectos legacy
- Casos corporativos específicos
- Generadores internos
- Automatización personalizada donde no existe un CLI oficial
Yeoman — Conceptos avanzados y temas no cubiertos
Ciclo de vida de un generador
Un generador Yeoman se ejecuta siguiendo un ciclo de vida bien definido, lo que permite controlar con precisión cuándo se ejecuta cada paso.
Fases principales
- initializing Carga de configuración, validaciones iniciales
- prompting Definición de preguntas interactivas al usuario
- configuring
Persistencia de configuración (
.yo-rc.json) - writing Generación y copia de archivos
- install Instalación de dependencias (npm, yarn, pnpm)
- end Limpieza y mensajes finales
Cada fase puede omitirse o personalizarse según el caso de uso.
Sistema de prompts
Yeoman utiliza Inquirer.js para la interacción con el usuario.
Características
- Prompts condicionales
- Valores por defecto
- Validación de entradas
- Flujos dinámicos según respuestas
Esto permite:
- Generadores altamente configurables
- Adaptación a distintos perfiles de usuario
- Automatización guiada
Plantillas y templating
Motores de plantillas
Yeoman soporta principalmente:
- EJS (por defecto)
- Sustitución de variables
- Condicionales
- Bucles
Uso típico
- Personalización de nombres de proyecto
- Configuración de entornos
- Generación dinámica de código
Las plantillas viven normalmente en:
templates/templates/**
Sistema de archivos (yeoman-fs)
Yeoman no escribe directamente al disco, sino que utiliza una memoria intermedia.
Ventajas
- Operaciones atómicas
- Detección de conflictos
- Mejor control de cambios
Funcionalidades
- Copia de archivos
- Renderizado de plantillas
- Edición incremental de archivos existentes
Gestión de conflictos
Cuando un archivo ya existe, Yeoman puede:
- Sobrescribir
- Saltar
- Fusionar
- Preguntar al usuario
Esto es clave para:
- Proyectos ya existentes
- Reejecución de generadores
- Subgeneradores sobre código vivo
Composición de generadores
Yeoman permite componer generadores, reutilizando lógica existente.
Casos comunes
- Generadores base reutilizables
- Subgeneradores especializados
- Orquestación de múltiples generadores
Esto favorece:
- Arquitecturas modulares
- DRY
- Escalabilidad en organizaciones grandes
Subgeneradores
Los subgeneradores permiten:
- Añadir features a un proyecto existente
- Evolucionar proyectos con el tiempo
Ejemplos:
- Añadir autenticación
- Añadir sistema de build
- Añadir soporte para nuevos entornos
Configuración persistente
Yeoman almacena configuración en:
.yo-rc.json
Uso
- Recordar elecciones del usuario
- Evitar repetir preguntas
- Mantener coherencia entre ejecuciones
Testing de generadores
Herramientas habituales
- yeoman-test
- yeoman-assert
- Mocha / Jest
Qué se testea
- Archivos generados
- Contenido de plantillas
- Estructura de carpetas
- Flujos condicionales
El testing es clave para:
- Generadores corporativos
- Mantenimiento a largo plazo
- Compatibilidad entre versiones
Publicación y versionado
Publicación
- Los generadores se publican en npm
- Convención de nombre:
generator-*
Versionado
- Uso de semver
- Cambios breaking afectan directamente a los usuarios
- Importante documentar migraciones
Mantenimiento de generadores
Un generador es un producto vivo.
Buenas prácticas
- Documentación clara
- Changelog
- Compatibilidad hacia atrás
- Actualización de dependencias
Problemas comunes
- Dependencias obsoletas
- Cambios en tooling externo
- APIs de terceros que evolucionan
Seguridad
Aspectos a tener en cuenta:
- Ejecución de scripts post-install
- Dependencias transitivas
- Uso en entornos corporativos cerrados
En organizaciones grandes suele:
- Auditar generadores
- Usar registries privados
- Firmar versiones internas
Uso en entornos corporativos
Yeoman encaja bien en:
- Monorepos
- Estandarización de proyectos internos
- Onboarding de nuevos desarrolladores
Permite:
- Forzar convenciones
- Reducir errores humanos
- Alinear equipos
Alternativas y coexistencia
Yeoman no suele competir directamente, sino convivir con:
- CLIs de frameworks
- Scripts personalizados
- Plantillas internas
Se utiliza cuando:
- No existe un CLI oficial
- Se necesita alto nivel de personalización
- Se quiere independencia de framework
Futuro y rol actual
Hoy Yeoman se posiciona como:
- Herramienta de scaffolding genérica
- Base para generadores internos
- Solución estable para proyectos legacy y enterprise
Su valor principal sigue siendo:
- Flexibilidad
- Control total del proceso de generación
- Integración con cualquier stack
Estado en 2025 y alternativas a Yeoman (scaffolding y generación de proyectos)
Estado actual de Yeoman
- En 2025 Yeoman sigue activo, con mantenimiento comunitario y foco en estabilidad para entornos legacy y enterprise, más que en innovación rápida.
- Yeoman Blog – Maintenance updates
-
[Getting started with Yeoman Yeoman](https://yeoman.io/learning/)
Yeoman sigue siendo valioso como solución estable y probada para proyectos que requieren:
- Generación de estructuras completas de proyecto
- Reutilización de generadores existentes
- Integración con ecosistemas ya consolidados
Sin embargo, no es la herramienta dominante en proyectos nuevos, donde los CLIs de framework y generadores más ligeros suelen ser preferidos.
Alternativas modernas de scaffolding y generación de proyectos (2025)
CLI específicos de frameworks
- Create React App
- Generador oficial histórico para React (cada vez menos usado frente a Next.js y Vite)
- Create React App
- Angular CLI
- Scaffolding completo, testing, build y deployment
- Angular CLI
- Vue CLI
- CLI interactiva con plugins y presets
- Vue CLI
- SvelteKit
- Framework moderno con generador oficial
- SvelteKit
- Next.js
- Framework full-stack React con generador integrado
- Next.js – create-next-app
Generadores agnósticos ligeros
- Plop.js
- Micro-generador para componentes y archivos
- Muy usado dentro de proyectos existentes
- Plop.js
- Hygen
- Generador rápido, sin dependencias pesadas
- Ideal para scaffolding incremental
- Hygen
- SAO
- Generador basado en plantillas con enfoque moderno
- SAO
- Preset
- Generación y modificación de código existente
- Preset
Ecosistemas y herramientas especializadas
- Nx
- Herramienta avanzada para monorepos
- Incluye generación de apps, libs y tooling
- Nx
- Rails Scaffold
- Generación CRUD integrada en Ruby on Rails
- Rails Guides – Generators
- OpenAPI Generator / Swagger Codegen
- Generación de clientes y servidores a partir de contratos API
- OpenAPI Generator
- Swagger Codegen
- Generadores asistidos por IA
- Tendencia creciente: scaffolding desde descripciones en lenguaje natural
- Ejemplo conceptual (no estándar único todavía):
Generadores full-stack
- JHipster
- Generador full-stack consolidado
- Backend Spring Boot + frontend moderno
- Soporte para microservicios y cloud
- JHipster
Categorías de alternativas y cuándo usarlas
Según necesidad
- Proyectos framework-específicos
- Angular, Vue, Next.js, SvelteKit
- Usar siempre el CLI oficial
- Monorepos y organizaciones grandes
- Nx, JHipster
- Scaffolding incremental o interno
- Plop.js, Hygen, Preset
- Contratos API como fuente de verdad
- OpenAPI Generator, Swagger Codegen
- Exploración y prototipado rápido
- Generadores asistidos por IA + templates
Comparación conceptual
- Yeoman
- Muy flexible
- Ideal para legacy, enterprise y generadores internos
- Más pesado y menos alineado con stacks modernos
- CLI modernos
- Opinados
- Mejor integración con el framework
- Menos genéricos
- Generadores ligeros
- Rápidos
- Bajo acoplamiento
- Excelente complemento a CLIs existentes
Enlaces útiles para comparar alternativas
¿Te gusta este contenido? Suscríbete vía RSS