@malopez1578/tita-cli
v1.2.3
Published
CLI for creating projects from GitLab templates with automatic dependency installation
Maintainers
Readme
TITA CLI 🚀
[
Una herramienta de línea de comandos profesional para crear proyectos desde templates de GitLab con instalación automática de dependencias, gestión inteligente de caché y configuración persistente.
✨ Características
🎯 Funcionalidades Core
- Clonación inteligente de templates desde GitLab
- Instalación automática con Yarn en todos los subdirectorios
- Configuración completa de manifest.json (vendor, name, title, description)
- Interfaz moderna con colores y spinners animados
- Verificación de prerrequisitos automática
- Inicialización Git automática con commit inicial
🚀 Funcionalidades Avanzadas
- 🗄️ Caché inteligente de templates - Descarga una vez, usa muchas veces
- ⚙️ Configuración persistente - Recuerda tus preferencias
- 📝 Sistema de logging estructurado - Logs detallados y configurables
- 🛡️ Validación robusta - Protección contra errores comunes
- 🔧 Gestión de errores avanzada - Mensajes de error útiles y accionables
- 📊 Estadísticas de caché - Monitoreo del uso y rendimiento
- 🔄 Verificación automática de actualizaciones - Notificaciones inteligentes de nuevas versiones
🚀 Optimizaciones de Rendimiento ⚡
- 🔄 Clonado Shallow - Clonación hasta 10x más rápida usando
--depth=1 - ⚙️ Instalación Paralela - Dependencias instaladas en lotes paralelos (hasta 3x más rápido)
- 🧠 Caché Inteligente - Templates almacenados localmente con TTL y gestión de tamaño
- 🔍 Búsqueda Optimizada - Búsqueda de archivos con límites de profundidad
- 📈 Métricas de Rendimiento - Estadísticas detalladas de uso y eficiencia
🎨 Experiencia de Usuario
- Modo interactivo con prompts inteligentes
- Templates preferidos mostrados primero
- Gestión dinámica de templates
- Comandos de configuración fáciles de usar
- Feedback visual con indicadores de progreso
🚀 Instalación
Instalación Global (Recomendado)
# Con npm
npm install -g @malopez1578/tita-cli
# Con yarn
yarn global add @malopez1578/tita-cliInstalación Local
# Con npm
npm install @malopez1578/tita-cli
# Con yarn
yarn add @malopez1578/tita-cli
# Ejecutar localmente
npx @malopez1578/tita-cli📋 Prerrequisitos
- Node.js (v16 o superior)
- Git (para clonación de repositorios)
- Yarn (para instalación de dependencias)
🎯 Inicio Rápido
# Instalar globalmente
npm install -g @malopez1578/tita-cli
# Crear tu primer proyecto
tita init🚀 Instalación Desde Código Fuente (Para Desarrollo)
# Clonar el repositorio
git clone https://github.com/malopez1578/tita-cli.git
cd tita-cli
# Instalar dependencias
yarn install
# Compilar el proyecto
yarn build
# Instalar globalmente para desarrollo
yarn link-global� ¿Qué hace TITA CLI al crear un proyecto?
Cuando ejecutas tita create, la herramienta realiza una serie de operaciones para entregarte un proyecto completamente configurado:
🔄 Proceso de Creación
- 📥 Clonación Inteligente: Descarga el template desde GitLab usando caché inteligente
- 📝 Actualización de Archivos: Configura automáticamente los archivos del proyecto
- 📦 Instalación: Instala dependencias en paralelo con Yarn
- 📂 Inicialización Git: Crea un repositorio Git limpio con commit inicial
📄 Archivos Actualizados Automáticamente
manifest.json
{
"vendor": "tu.vendor",
"name": "mi-componente",
"title": "Mi Componente",
"description": "Descripción del componente",
"version": "1.0.0"
}package.json
{
"name": "mi-componente",
"version": "1.0.0",
"description": "Descripción del componente",
"author": "Tu Nombre"
}Nota: Se eliminan automáticamente los campos repository, bugs y homepage del template original.
CHANGELOG.md (Creado limpio)
# Changelog
## [1.0.0] - 2025-07-15
### Added
- Initial release of Mi Componente
- Descripción del componente
---
## Template Information
This project was created using TITA CLI from a GitLab template.
Previous changelog history has been reset for a clean start.�📖 Uso
🎮 Modo Interactivo (Recomendado)
# Crear proyecto con prompts inteligentes
tita createEl modo interactivo te guía paso a paso:
- ✅ Selección de template con favoritos primero
- ✅ Configuración de versión inicial
- ✅ Configuración de directorio destino
- ✅ Configuración de vendor (con opción de guardar como default)
- ✅ Información del componente (título, descripción)
- ✅ Configuración de autor (con opción de guardar como default)
📝 Configuración Previa (Opcional)
Para acelerar el proceso, puedes configurar valores por defecto:
# Configurar vendor por defecto
tita config --set-vendor "miempresa.team"
# Configurar autor por defecto
tita config --set-author "Mi Nombre"
# Ver configuración actual
tita config --showComandos disponibles
# Ver ayuda general
tita --help
# Listar templates disponibles
tita list
# Crear proyecto desde template
tita create
# Gestión de caché inteligente
tita cache --stats # Ver estadísticas de caché
tita cache --list # Listar templates en caché
tita cache --clear # Limpiar caché
# Gestión de configuración
tita config --show # Mostrar configuración actual
tita config --reset # Resetear configuración
tita config --set-vendor <name> # Establecer vendor por defecto
tita config --set-log-level <level> # Establecer nivel de logging
# Comandos de rendimiento ⚡
tita perf --stats # Ver estadísticas de rendimiento
tita perf --clean # Limpiar caché antiguo (>7 días)
tita perf --optimize # Optimizar caché completo
tita perf --clear-all # Limpiar todo el caché
# Verificación de actualizaciones 🔄
tita update # Verificar si hay nuevas versiones disponibles
tita update --check # Verificar actualizaciones explícitamenteOpciones del comando create
-d, --directory <dir>: Directorio de destino (por defecto: directorio actual)-v, --vendor <vendor>: Nombre del vendor para manifest.json-n, --name <name>: Nombre del componente para manifest.json (opcional, usa projectName por defecto)-t, --title <title>: Título del componente para manifest.json--desc <description>: Descripción del componente para manifest.json
Ejemplos de uso
# Crear proyecto básico (solicita información interactivamente)
tita create components mi-nuevo-proyecto
# Crear proyecto con información del componente (usa el nombre del proyecto como nombre del componente)
tita create components mi-proyecto \
--vendor "MiEmpresa" \
--title "Mi Componente Genial" \
--desc "Un componente increíble para mi tienda"
# Crear proyecto con nombre de componente personalizado
tita create components mi-proyecto \
--vendor "MiEmpresa" \
--name "componente-personalizado" \
--title "Mi Componente Personalizado" \
--desc "Un componente con nombre específico"
# Crear proyecto en directorio específico
tita create components mi-proyecto --directory /path/to/projects
# Usar modo interactivo (incluye todos los prompts)
tita init🎯 Templates disponibles
Los templates se configuran en constants/templates.ts:
export const URL_TEMPLATES = {
'components': '[email protected]:titadev/tita-quality/quality-template.git',
// Agrega más templates aquí
}🔧 Desarrollo
# Modo desarrollo con recarga automática
yarn dev
# Compilar proyecto
yarn build
# Limpiar archivos compilados
yarn clean
# Instalar globalmente para testing
yarn link-global
# Desinstalar versión global
yarn unlink-global🏗️ Proceso de creación de proyecto
- Verificación de prerrequisitos (Git, Yarn)
- Selección de template (en modo interactivo)
- Captura de detalles del proyecto (nombre, directorio)
- Solicitud de información del vendor
- Solicitud de información del componente (title, description - el name se toma del projectName)
- Clonación del template desde GitLab
- Limpieza del historial Git original
- Actualización completa del manifest.json con toda la información
- Búsqueda recursiva de archivos
package.json - Instalación automática con
yarn installen cada directorio - Inicialización de nuevo repositorio Git
- Commit inicial con el código del template
📁 Estructura del proyecto
TITA_CLI/
├── index.ts # Código principal del CLI
├── constants/
│ └── templates.ts # Configuración de templates
├── package.json # Configuración del proyecto
├── tsconfig.json # Configuración TypeScript
└── dist/ # Código compilado
└── index.js # Ejecutable del CLI🎨 Características visuales
- Banner ASCII con figlet
- Colores vibrantes con chalk
- Spinners animados con ora
- Prompts interactivos con inquirer
- Feedback visual en tiempo real
📝 Notas
- El CLI busca automáticamente archivos
package.jsonen todos los subdirectorios - Excluye
node_modulesy.gitde la búsqueda - Maneja errores de forma elegante con mensajes informativos
- Soporta tanto URLs SSH como HTTPS de GitLab
- Actualiza automáticamente el archivo
manifest.jsoncon información completa del componente - Busca el archivo
manifest.jsonen múltiples ubicaciones comunes del proyecto - El nombre del componente se toma automáticamente del nombre del proyecto (evita duplicación)
- Permite especificar información del componente via CLI o mediante prompts interactivos
🤝 Contribución
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Desarrollo Local
# Instalar dependencias
yarn install
# Compilar en modo desarrollo
yarn dev
# Compilar para producción
yarn build
# Limpiar archivos compilados
yarn clean🔄 Sistema de Actualizaciones
TITA CLI incluye un sistema inteligente de verificación de actualizaciones que te mantiene al día con las últimas mejoras y correcciones.
🚀 Características del Sistema de Actualizaciones
- Verificación automática al ejecutar
tita create - Caché inteligente - Verifica una vez cada 24 horas
- Notificaciones no intrusivas - Solo muestra cuando hay actualizaciones disponibles
- Comandos de instalación - Proporciona comandos específicos para actualizar
- Compatibilidad total - Funciona con npm y yarn
📋 Comandos de Actualización
# Verificar actualizaciones manualmente
tita update
# Verificar actualizaciones explícitamente (fuerza verificación)
tita update --check🎯 Cómo Funciona
- Verificación silenciosa - Se ejecuta en segundo plano durante
tita create - Caché de 24 horas - Evita verificaciones excesivas
- Notificación visual - Muestra un banner atractivo cuando hay actualizaciones
- Comandos de ejemplo - Proporciona comandos listos para copiar y pegar
📱 Ejemplo de Notificación
Cuando hay una actualización disponible, verás algo como esto:
┌─────────────────────────────────────────────────────┐
│ 🔔 Nueva versión disponible! │
│ │
│ Versión actual: 1.1.8 │
│ Última versión: 1.2.0 │
│ │
│ Para actualizar, ejecuta: │
│ npm install -g @malopez1578/tita-cli@latest │
│ │
│ Alternativamente con yarn: │
│ yarn global add @malopez1578/tita-cli@latest │
└─────────────────────────────────────────────────────┘🔄 Versionado
Este proyecto usa SemVer para el versionado. Para ver las versiones disponibles, consulta los tags en este repositorio.
📝 Changelog
Consulta el CHANGELOG.md para ver los cambios detallados en cada versión.
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
👥 Autores
- Miguel López - Trabajo inicial - malopez1578
🙏 Agradecimientos
- Inspirado en las mejores prácticas de CLIs modernas
- Construido con amor para la comunidad de desarrolladores
- Agradecimientos especiales a todos los contribuidores
🐛 Reportar Bugs
Si encuentras un bug, por favor abre un issue con:
- Descripción detallada del problema
- Pasos para reproducir
- Versión del CLI y Node.js
- Sistema operativo
💡 Solicitar Features
Para solicitar nuevas características, abre un issue con la etiqueta "enhancement".
