Contenido del curso
Gestión de Entornos
Nuevas Funcionalidades en Angular
- 7

Variables locales con @let en Angular
09:14 min - 8

Lazy loading de imágenes con ngSrc en Angular
17:08 min - 9

URLs amigables para SEO en Angular
11:27 min - 10

"Reactividad en Angular: Migración a Input Signals"
20:42 min - 11

Migración automática de @Input a signals en Angular
12:23 min - 12

Migración de Outputs en Angular: De Decoradores a Funciones
07:35 min - 13

linkedSignal en Angular: computed con set
12:56 min - 14

Sincronización de Componentes en Angular con Model y Signals
12:03 min - 15

toSignal: Observables de RxJS como Signals
11:17 min - 16

Conversión de Observables a Signals en Angular con toSignal
08:07 min - 17

Interoperabilidad de RXDS y Signals en Angular: Uso de RX Resourcers
11:10 min - 18

Manejo de Parámetros Reactivos con RX Resource en Angular
09:18 min - 19

Manejo de Promesas y Fetch en Angular sin RXJS
07:59 min - 20

Reactividad en Angular: Uso de Signals para Consultas DOM
09:00 min - 21

Configuración de Prettier para HTML en Angular
05:28 min
Server-Side Rendering (SSR) y Navegación
- 22

Migración al Application Builder de Angular
10:17 min - 23

Server Side Rendering con Angular: Mejora Rendimiento y SEO
13:26 min - 24

afterNextRender: código seguro solo en el browser
09:42 min - 25

Geolocalización y APIs: Creando un Mapa de Tiendas Cercanas
15:39 min - 26

Pre-rendering en Angular con ng build
11:25 min - 27

Desplegando Angular SSR en Firebase
18:12 min
Optimización de Rendimiento
- 28

Generación de Meta Tags Dinámicos con Angular y Open Graph
15:11 min - 29

Creación de MetaTags Dinámicos en Angular
12:51 min - 30

Proceso de Hydration y Event Replay en Angular
05:54 min - 31

Productos relacionados con RxResource en Angular
09:25 min - 32

Carga diferida de componentes en Angular para mejorar rendimiento
10:10 min - 33

Optimización de Incremental Hydration en Angular
06:14 min - 34

Configuración de Server Routing en Angular
10:43 min - 35

Aplicaciones Sin Zone.js: Migración a Signals en Angular
13:02 min - 36

Cierre del curso avanzado de Angular
00:53 min
Manejo de environments en Angular
Resumen
Configurar environments en Angular te permite separar variables y URLs entre desarrollo y producción, evitando que toques datos reales mientras programas. Es una práctica clave para cualquier proyecto que se conecte a una API y necesite proteger su entorno productivo.
¿Qué son los environments en Angular y por qué importan?
Angular maneja por defecto dos ambientes: uno de desarrollo y uno de producción. La diferencia entre ellos define a qué API te conectas, qué llaves usas y qué configuraciones se activan según el contexto en el que se ejecuta tu aplicación.
El problema aparece cuando, sin esta separación, terminas pegándole directamente a la API de producción mientras desarrollas. Imagina que estás probando la función de eliminar productos y borras uno que un usuario real estaba a punto de comprar. Ahí está el riesgo.
¿Para qué sirven los environments en Angular? Sirven para separar configuraciones, URLs y variables sensibles entre ambientes como desarrollo y producción, evitando errores graves al manipular datos reales durante el desarrollo.
¿Cómo habilitar los environments con ng generate environment?
Angular no activa los environments por defecto. Tienes que pedírselo de forma explícita con un comando que los configura automáticamente [02:00].
En la terminal ejecutas:
bash ng generate environment
Esto crea una carpeta nueva con dos archivos:
environment.ts, que corresponde al ambiente de producción.environment.development.ts, que corresponde al ambiente de desarrollo.
Cada archivo arranca con un objeto vacío al que puedes ir sumando llaves como production: true o production: false, y variables propias como una myVar con el valor que necesites.
¿Qué URL debo poner en cada environment?
La configuración más importante suele ser la apiUrl. La recomendación es colocar solo el dominio, sin subpaths ni slash al final, para mantener limpia la base de la conexión [04:30].
- En
environment.ts(producción): la URL real de tu API productiva con HTTPS. - En
environment.development.ts: una URL distinta, que puede ser un endpoint específico de desarrollo (algo tipoapidev.api) o un backend corriendo en local con Docker o Node.js, normalmente enlocalhost:3001.
Así, cuando estás desarrollando, le pegas a un entorno aislado y no afectas datos reales.
¿Cómo usar el archivo environment dentro de un servicio?
Una mala práctica frecuente es dejar la URL quemada directamente en el servicio. La idea es reemplazarla importando el archivo de environment y consumiendo environment.apiUrl desde ahí [07:15].
Lo interesante es cómo Angular hace el switch entre ambientes:
- Cuando ejecutas
ng serve, toma automáticamente el archivoenvironment.development.ts. - Cuando ejecutas
ng buildpara producción, toma automáticamenteenvironment.ts.
No necesitas configurar nada adicional. Importas siempre el mismo archivo y Angular se encarga de resolver cuál usar según el comando.
¿Cómo cambia Angular entre development y production? Angular detecta el comando que ejecutas:
ng servecarga el archivo de desarrollo yng buildcarga el de producción, sin configuración manual extra.
¿Cómo verificar que el environment está funcionando?
Al correr ng serve y abrir el proyecto en el puerto 4200, puedes revisar la pestaña Network del navegador. Si configuraste bien el ambiente de desarrollo, las peticiones ya no salen hacia la API de producción, sino hacia tu localhost:3001 o el endpoint de desarrollo que hayas definido [10:20].
Esa verificación rápida te confirma que el switch entre ambientes está operando como debe.
¿Cómo limpiar los imports con short imports en TS config?
Importar el environment con ../../ repetido funciona, pero no es la mejor práctica. Cuando tienes servicios en distintos niveles de carpetas, terminas con cadenas largas y difíciles de leer, e incluso reglas de linter como las de Prettier te marcarán que la línea es demasiado larga.
La solución son los short imports configurados en el tsconfig.json, que funcionan como accesos directos hacia carpetas específicas del proyecto [12:40].
Crear uno para los environments es directo:
- Abres el
tsconfig.jsony agregas un alias, por ejemplo@env. - Apuntas ese alias a
./src/environments. - En tus servicios reemplazas el import largo por
import { environment } from '@env/environment'.
El resultado es código más legible, sin puntos encadenados y más fácil de mantener cuando el proyecto crece.
¿Existe un ambiente intermedio entre desarrollo y producción?
Más allá de development y production, en el mundo profesional aparece un tercer ambiente muy usado: el de staging. Es un entorno intermedio, pensado para QA, testing y validaciones previas antes de mover cambios a producción [15:50].
Angular no lo crea por defecto, pero puedes configurarlo manualmente para sumarlo a tu flujo. Cuéntame en los comentarios qué encontraste sobre el ambiente de staging y cómo lo implementarías en tu proyecto.