-
This commit is contained in:
25
CLAUDE.md
25
CLAUDE.md
@@ -284,26 +284,29 @@ XX. **Nome Problema (FIX/IMPLEMENTATO DATA):** - **Problema:** Descrizione breve
|
||||
6. [ ] Gestire sezioni header/footer ripetute su ogni pagina
|
||||
7. [ ] UI per relazioni tra dataset multipli
|
||||
|
||||
**Comandi utili:**
|
||||
**Comandi utili (usa il Makefile!):**
|
||||
|
||||
```bash
|
||||
# Build backend
|
||||
cd src && dotnet build
|
||||
# IMPORTANTE: Usa sempre il Makefile per compilare e avviare l'applicazione
|
||||
|
||||
# Build frontend
|
||||
cd frontend && npm run build
|
||||
make help # Mostra tutti i comandi disponibili
|
||||
make install # Installa tutte le dipendenze (NuGet + npm)
|
||||
make dev # Avvia backend e frontend in parallelo (dev mode)
|
||||
make build # Compila tutto per produzione
|
||||
|
||||
# Run backend (porta 5000)
|
||||
cd src/Apollinare.API && dotnet run
|
||||
make backend-run # Avvia solo backend (porta 5000)
|
||||
make frontend-run # Avvia solo frontend (porta 5173)
|
||||
make backend-watch # Backend con hot reload (dotnet watch)
|
||||
|
||||
# Run frontend dev (porta 5173)
|
||||
cd frontend && npm run dev
|
||||
make clean # Pulisce artefatti di build
|
||||
make lint # Esegue ESLint sul frontend
|
||||
make check # Verifica prerequisiti installati (dotnet, node, npm)
|
||||
```
|
||||
|
||||
**IMPORTANTE:** Dopo modifiche al codice, i servizi backend e frontend vanno **sempre riavviati** per vedere le modifiche:
|
||||
|
||||
- Backend: fermare con `Ctrl+C` e rilanciare `dotnet run`
|
||||
- Frontend: in dev mode (`npm run dev`) il hot-reload è automatico per la maggior parte delle modifiche, ma per modifiche strutturali (nuovi file, cambi a tipi, etc.) potrebbe essere necessario riavviare
|
||||
- Backend: fermare con `Ctrl+C` e rilanciare `make backend-run`
|
||||
- Frontend: in dev mode (`make frontend-run`) il hot-reload è automatico per la maggior parte delle modifiche, ma per modifiche strutturali (nuovi file, cambi a tipi, etc.) potrebbe essere necessario riavviare
|
||||
|
||||
---
|
||||
|
||||
|
||||
147
Makefile
Normal file
147
Makefile
Normal file
@@ -0,0 +1,147 @@
|
||||
# Apollinare - Makefile per sviluppo
|
||||
# Uso: make <target>
|
||||
|
||||
.PHONY: help install build run dev clean test lint backend frontend backend-run frontend-run backend-build frontend-build all stop
|
||||
|
||||
# Variabili
|
||||
BACKEND_DIR := src/Apollinare.API
|
||||
FRONTEND_DIR := frontend
|
||||
BACKEND_PORT := 5000
|
||||
FRONTEND_PORT := 5173
|
||||
|
||||
# Colori per output
|
||||
CYAN := \033[0;36m
|
||||
GREEN := \033[0;32m
|
||||
YELLOW := \033[0;33m
|
||||
NC := \033[0m # No Color
|
||||
|
||||
help: ## Mostra questo help
|
||||
@echo "$(CYAN)Apollinare - Comandi disponibili:$(NC)"
|
||||
@echo ""
|
||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-20s$(NC) %s\n", $$1, $$2}'
|
||||
@echo ""
|
||||
@echo "$(YELLOW)Esempi:$(NC)"
|
||||
@echo " make install # Installa tutte le dipendenze"
|
||||
@echo " make dev # Avvia backend e frontend in dev mode"
|
||||
@echo " make build # Compila tutto per produzione"
|
||||
|
||||
# ============================================
|
||||
# INSTALLAZIONE
|
||||
# ============================================
|
||||
|
||||
install: backend-restore frontend-install ## Installa tutte le dipendenze (backend + frontend)
|
||||
@echo "$(GREEN)Tutte le dipendenze installate!$(NC)"
|
||||
|
||||
backend-restore: ## Ripristina i pacchetti NuGet del backend
|
||||
@echo "$(CYAN)Ripristino pacchetti NuGet...$(NC)"
|
||||
cd src && dotnet restore
|
||||
|
||||
frontend-install: ## Installa le dipendenze npm del frontend
|
||||
@echo "$(CYAN)Installazione dipendenze npm...$(NC)"
|
||||
cd $(FRONTEND_DIR) && npm install
|
||||
|
||||
# ============================================
|
||||
# BUILD
|
||||
# ============================================
|
||||
|
||||
build: backend-build frontend-build ## Compila backend e frontend
|
||||
@echo "$(GREEN)Build completata!$(NC)"
|
||||
|
||||
backend-build: ## Compila il backend .NET
|
||||
@echo "$(CYAN)Compilazione backend...$(NC)"
|
||||
cd src && dotnet build --configuration Release
|
||||
|
||||
frontend-build: ## Compila il frontend React
|
||||
@echo "$(CYAN)Compilazione frontend...$(NC)"
|
||||
cd $(FRONTEND_DIR) && npm run build
|
||||
|
||||
# ============================================
|
||||
# ESECUZIONE SVILUPPO
|
||||
# ============================================
|
||||
|
||||
dev: ## Avvia backend e frontend in parallelo (dev mode)
|
||||
@echo "$(CYAN)Avvio in modalita' sviluppo...$(NC)"
|
||||
@echo "$(YELLOW)Backend: http://localhost:$(BACKEND_PORT)$(NC)"
|
||||
@echo "$(YELLOW)Frontend: http://localhost:$(FRONTEND_PORT)$(NC)"
|
||||
@echo ""
|
||||
@$(MAKE) -j2 backend-run frontend-run
|
||||
|
||||
backend-run: ## Avvia solo il backend in dev mode
|
||||
@echo "$(CYAN)Avvio backend su porta $(BACKEND_PORT)...$(NC)"
|
||||
cd $(BACKEND_DIR) && dotnet run
|
||||
|
||||
frontend-run: ## Avvia solo il frontend in dev mode
|
||||
@echo "$(CYAN)Avvio frontend su porta $(FRONTEND_PORT)...$(NC)"
|
||||
cd $(FRONTEND_DIR) && npm run dev
|
||||
|
||||
backend-watch: ## Avvia il backend con hot reload (dotnet watch)
|
||||
@echo "$(CYAN)Avvio backend con hot reload...$(NC)"
|
||||
cd $(BACKEND_DIR) && dotnet watch run
|
||||
|
||||
# ============================================
|
||||
# TEST E LINTING
|
||||
# ============================================
|
||||
|
||||
test: backend-test ## Esegue tutti i test
|
||||
@echo "$(GREEN)Test completati!$(NC)"
|
||||
|
||||
backend-test: ## Esegue i test del backend
|
||||
@echo "$(CYAN)Esecuzione test backend...$(NC)"
|
||||
cd src && dotnet test
|
||||
|
||||
lint: frontend-lint ## Esegue il linting
|
||||
@echo "$(GREEN)Linting completato!$(NC)"
|
||||
|
||||
frontend-lint: ## Esegue ESLint sul frontend
|
||||
@echo "$(CYAN)Linting frontend...$(NC)"
|
||||
cd $(FRONTEND_DIR) && npm run lint
|
||||
|
||||
# ============================================
|
||||
# PULIZIA
|
||||
# ============================================
|
||||
|
||||
clean: backend-clean frontend-clean ## Pulisce tutti gli artefatti di build
|
||||
@echo "$(GREEN)Pulizia completata!$(NC)"
|
||||
|
||||
backend-clean: ## Pulisce gli artefatti di build del backend
|
||||
@echo "$(CYAN)Pulizia backend...$(NC)"
|
||||
cd src && dotnet clean
|
||||
find src -type d -name "bin" -exec rm -rf {} + 2>/dev/null || true
|
||||
find src -type d -name "obj" -exec rm -rf {} + 2>/dev/null || true
|
||||
|
||||
frontend-clean: ## Pulisce gli artefatti di build del frontend
|
||||
@echo "$(CYAN)Pulizia frontend...$(NC)"
|
||||
rm -rf $(FRONTEND_DIR)/dist
|
||||
rm -rf $(FRONTEND_DIR)/node_modules/.vite
|
||||
|
||||
clean-all: clean ## Pulizia completa (include node_modules)
|
||||
@echo "$(CYAN)Rimozione node_modules...$(NC)"
|
||||
rm -rf $(FRONTEND_DIR)/node_modules
|
||||
|
||||
# ============================================
|
||||
# DATABASE
|
||||
# ============================================
|
||||
|
||||
db-update: ## Applica le migration del database
|
||||
@echo "$(CYAN)Applicazione migration...$(NC)"
|
||||
cd $(BACKEND_DIR) && dotnet ef database update
|
||||
|
||||
db-migration: ## Crea una nuova migration (usa: make db-migration NAME=NomeMigration)
|
||||
@echo "$(CYAN)Creazione migration: $(NAME)$(NC)"
|
||||
cd $(BACKEND_DIR) && dotnet ef migrations add $(NAME)
|
||||
|
||||
# ============================================
|
||||
# UTILITY
|
||||
# ============================================
|
||||
|
||||
logs: ## Mostra i log del backend (se in esecuzione)
|
||||
@tail -f $(BACKEND_DIR)/logs/*.log 2>/dev/null || echo "Nessun file di log trovato"
|
||||
|
||||
check: ## Verifica che tutti i prerequisiti siano installati
|
||||
@echo "$(CYAN)Verifica prerequisiti...$(NC)"
|
||||
@command -v dotnet >/dev/null 2>&1 && echo "$(GREEN)dotnet:$(NC) $$(dotnet --version)" || echo "$(YELLOW)dotnet: non trovato$(NC)"
|
||||
@command -v node >/dev/null 2>&1 && echo "$(GREEN)node:$(NC) $$(node --version)" || echo "$(YELLOW)node: non trovato$(NC)"
|
||||
@command -v npm >/dev/null 2>&1 && echo "$(GREEN)npm:$(NC) $$(npm --version)" || echo "$(YELLOW)npm: non trovato$(NC)"
|
||||
|
||||
# Target di default
|
||||
.DEFAULT_GOAL := help
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user