Frontend Angular para sistema de identidad con integración al backend .NET.
- Angular: 20.2.3
- Node: 22+ (recomendado)
- Proyecto: identity-client
- Salida del build:
dist/identity-client/
- API URL:
http://localhost:5000 - Environment:
src/environments/environment.development.ts
- API URL:
/api(proxy reverso) - Environment:
src/environments/environment.ts
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm start
# El frontend estará disponible en http://localhost:4200# Construir imagen de desarrollo
docker build -f Dockerfile.dev -t identity-client-dev .
# Ejecutar contenedor de desarrollo
docker run -p 4200:4200 identity-client-dev
# El frontend estará disponible en http://localhost:4200 con hot reload habilitado# Construir imagen de producción
docker build -t identity-client .
# Ejecutar contenedor de producción
docker run -p 8081:80 identity-client
# El frontend estará disponible en http://localhost:8081El frontend está configurado para trabajar con un backend .NET que debe estar ejecutándose en:
- Desarrollo local:
http://localhost:5000 - Docker: hostname interno
api:8080
El contenedor de producción incluye un nginx configurado con proxy reverso que:
- Sirve los archivos estáticos de Angular en
/ - Redirige las llamadas de
/api/*haciahttp://api:8080/api/
npm run start # Desarrollo local (ng serve)
npm run start:docker # Desarrollo en Docker (host 0.0.0.0, polling habilitado)
npm run build # Build básico
npm run build:prod # Build de producción optimizado
npm run test # Ejecutar tests
npm run watch # Build con watch para desarrollosrc/
├── app/
│ ├── core/
│ │ ├── api/
│ │ │ └── api-client.ts # Cliente API generado (NSwag)
│ │ ├── services/
│ │ │ └── api-config.service.ts # Servicio de configuración de API
│ │ ├── interceptors/
│ │ │ └── auth.interceptor.ts # Interceptor de autenticación
│ │ └── store/ # Estado global (NgRx)
│ ├── features/ # Funcionalidades por módulo
│ └── shared/ # Componentes compartidos
├── environments/
│ ├── environment.ts # Configuración producción
│ └── environment.development.ts # Configuración desarrollo
El proyecto utiliza un cliente API generado con NSwag que se configura mediante:
- Environment variables: Configuración de
apiBaseUrl - Dependency Injection: Provider de
API_BASE_URLenapp.config.ts - Servicio centralizado:
ApiConfigServicepara manejo uniforme de URLs
version: '3.8'
services:
identity-client:
build: .
ports:
- "8081:80"
depends_on:
- api
api:
image: identity-api:latest
ports:
- "5000:8080"
environment:
- ASPNETCORE_ENVIRONMENT=ProductionEl Dockerfile.dev está configurado con:
CHOKIDAR_USEPOLLING=truepara file watching en contenedores--host 0.0.0.0para acceso externo--poll 2000para polling de cambios
- State Management: NgRx para manejo del estado global
- HTTP Client: Cliente generado automáticamente con NSwag
- Autenticación: JWT con interceptor automático
- UI: Angular Material para componentes de interfaz
Si tienes problemas de CORS en desarrollo, asegúrate de que:
- El backend .NET tenga configurado CORS correctamente
- La URL en
environment.development.tssea correcta
- Verificar que el polling esté habilitado:
CHOKIDAR_USEPOLLING=true - Comprobar conectividad entre contenedores con
docker network ls
- Limpiar node_modules:
rm -rf node_modules && npm install - Verificar compatibilidad de versiones de Angular CLI:
ng version