Skip to content

Latest commit

 

History

History
203 lines (163 loc) · 5.29 KB

File metadata and controls

203 lines (163 loc) · 5.29 KB

🛠️ Guía del Makefile - Coffee Recipes App

¿Por qué Makefile?

Hemos migrado de package.json scripts a un Makefile por las siguientes ventajas:

Mejor organización: Comandos agrupados por categoría
Más potente: Soporte nativo para dependencias y paralelización
Multiplataforma: Funciona en cualquier sistema Unix/Linux/macOS
Estándar de la industria: Herramienta estándar para proyectos de desarrollo
Mejor documentación: Help integrado con make help

📋 Comandos Principales

🚀 Inicio Rápido

make help          # Ver todos los comandos disponibles
make info          # Información del proyecto
make status        # Estado actual del proyecto
make install       # Instalar todas las dependencias
make dev           # Iniciar desarrollo (backend + mobile)

🔧 Desarrollo

make backend-serve    # Servidor backend en localhost:8000
make mobile-start     # Servidor Expo para desarrollo
make mobile-android   # Abrir en emulador Android
make mobile-ios       # Abrir en simulador iOS
make mobile-web       # Abrir versión web

🧪 Testing

make test                    # Ejecutar todos los tests
make test-backend           # Solo tests del backend
make test-mobile            # Solo tests del mobile
make test-backend-coverage  # Tests backend con coverage
make test-mobile-coverage   # Tests mobile con coverage
make test-watch             # Tests mobile en modo watch

🗄️ Base de Datos

make db-migrate     # Ejecutar migraciones pendientes
make db-fixtures    # Cargar datos de prueba
make db-reset       # Reset completo (migrate + fixtures)

🧹 Limpieza y Mantenimiento

make clean              # Limpieza completa (cache, node_modules, etc.)
make cache-clear        # Solo cache del backend
make cache-clear-mobile # Solo cache del mobile
make fresh-install      # Limpieza + instalación completa

📦 Dependencias

make update-deps    # Actualizar todas las dependencias
make check-deps     # Verificar dependencias desactualizadas

🏗️ Build y Deploy

make build-mobile   # Build de producción para mobile

🎯 Comandos por Flujo de Trabajo

Primera vez en el proyecto

make install        # Instalar dependencias
make db-reset       # Configurar base de datos
make test           # Verificar que todo funciona
make dev            # Iniciar desarrollo

Desarrollo diario

make dev            # Iniciar servidores
make test-watch     # Tests en background
# ... desarrollar ...
make test           # Verificar antes de commit

Después de pull/merge

make db-migrate     # Aplicar nuevas migraciones
make db-fixtures    # Actualizar datos de prueba
make update-deps    # Actualizar dependencias si es necesario

Limpieza periódica

make clean          # Limpiar caches
make fresh-install  # Reinstalación completa si hay problemas

🔍 Comandos de Diagnóstico

Ver estado del proyecto

make status         # Versiones y estadísticas
make info           # Información general
make logs-backend   # Ver logs del backend en tiempo real

Verificar dependencias

make check-deps     # Ver dependencias desactualizadas

🐳 Docker (Opcional)

make docker-build   # Construir contenedores
make docker-up      # Iniciar contenedores
make docker-down    # Parar contenedores

💡 Tips y Trucos

Ejecutar comandos en paralelo

# El Makefile maneja automáticamente la paralelización
make dev    # Inicia backend y mobile simultáneamente

Ver qué hace cada comando

make help   # Lista todos los comandos con descripción

Comandos personalizados

Puedes agregar tus propios comandos editando el Makefile:

my-command: ## Mi comando personalizado
	@echo "Ejecutando mi comando..."
	# tus comandos aquí

Debugging

# Ver exactamente qué comandos se ejecutan
make -n test    # Dry run (no ejecuta, solo muestra)

🆚 Migración desde package.json

Antes (npm) Ahora (make)
npm run dev make dev
npm run backend:test make test-backend
npm run mobile:start make mobile-start
npm run clean make clean
npm run fresh-install make fresh-install

🔧 Configuración

Requisitos

  • Make: Preinstalado en macOS/Linux
  • PHP: >= 8.1
  • Node.js: >= 18.0
  • Composer: Para dependencias PHP

Variables de entorno

El Makefile respeta las variables de entorno estándar:

  • PHP_VERSION
  • NODE_VERSION
  • Variables definidas en .env

🚨 Solución de Problemas

"make: command not found"

# En macOS
xcode-select --install

# En Ubuntu/Debian
sudo apt-get install build-essential

Permisos en scripts

chmod +x scripts/clean.sh

Cache corrupto

make clean
make fresh-install

📚 Recursos Adicionales


¡El Makefile hace que el desarrollo sea más eficiente y organizado! 🎉