Resumen: aprender a usar las variables del entorno de angular usando archivo environment.prod.ts y environment.ts para diferenciar entre entorno de producción y entorno de desarrollo.
Estoy a punto de publicar mi artículo sobre cómo conectar PHP con Angular; pero para ello tuve que hacer una diferencia entre el entorno de desarrollo y producción.
Esto es porque en modo producción, los archivos JS de Angular serán servidos en la misma URL que los de PHP, así que la URL base es .
En cambio, en modo desarrollo, Angular es servido en una URL distinta y la URL es localhost/mascotas_angular
Debo cambiar esto para que al compilar con la cli usando ng build --prod
se cambie el valor automáticamente.
Veamos los archivos:
export const environment = {
production: true,
baseUrl: ".",
};
// This file can be replaced during build by using the `fileReplacements` array.
// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
// The list of file replacements can be found in `angular.json`.
export const environment = {
production: false,
baseUrl: "http://localhost/mascotas_angular",
};
/*
* For easier debugging in development mode, you can import the following file
* to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
*
* This import should be commented out in production mode because it will have a negative impact
* on performance if an error is thrown.
*/// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
En el que tiene prod.ts
estoy definiendo una URL distinta a la que no lo tiene. Para usar cada valor, debemos importar el archivo así:
import { environment } from "../environments/environment"
(recuerda que la ruta puede cambiar dependiendo de tu configuración)
Finalmente accedemos a environment.valor
, por ejemplo:
export class MascotasService {
// ...
baseUrl = environment.baseUrl
// ...
}
Y no debemos preocuparnos por nada más. Angular se encargará de proporcionar los valores, nosotros simplemente accedemos al valor y dependiendo del entorno se tomará uno o el otro.
Estas variables no serán tomadas en cuenta si solo haces un ng build
; debes hacer un ng build --prod
para crear un “build de producción”
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.
Ver comentarios
Hola, pablo. Actualmente estoy en un proyecto angular, y mi situación es configurar de igual forma un ambiente dinámico para que se consuman estas variables, en algún fichero o servidor. Me preguntaba si logro obtener alguna solución a este problema, muchas gracias.
Esa es una buena solución, pero ¿Qué se puede hacer para solo hacer una única compilación y esas variables de entorno ya existan en cada entorno en algún fichero y las lea de ahí?