Intento crear una aplicación Angular 5 con el comando estándar ng build --prod , y quiero configurar la API-URL básica en environment.prod.ts en un valor que depende de mis variables process.env .
Este es mi archivo:
export const environment = { production: true, apiUrl: `${process.env.BASE_URL}` || 'http://localhost:8070/', };Pero cuando intento construir la aplicación, ocurre el siguiente error:
ERROR in src/environments/environment.ts(7,16): error TS2304: Cannot find name 'process'.
¿Cómo puedo configurar mi URL de API de acuerdo con una variable env al compilar la aplicación?
Actualizar
Según los comentarios a continuación, la respuesta original no estaba del todo clara: Angular está construido con Angular CLI, que es una aplicación de nodo, pero no puede acceder a process.env directamente desde dentro de la aplicación durante ese proceso de compilación, ya que no es procesado como una aplicación de Nodo.
Los conceptos siguen siendo prácticamente los mismos, pero es importante comprender lo anterior.
Original
No tendrá acceso a process.env en tiempo de compilación del código Angular.
process.env está disponible para las aplicaciones Node , que no es una aplicación Angular.
Tienes varias opciones:
Realice una tarea de algún tipo en su canal de compilación para actualizar el archivo de entorno con el valor correcto si realmente necesita ser dinámico.
Simplemente codifíquelo y cree varios archivos ambientales para que coincidan con cada uno de sus entornos. Puede especificar sus entornos en su angular-cli.json.
La opción número 2 parece ser adecuada para usted. En ese caso, desea poner esto en su angular-cli.json:
"environments": { "dev": "path/to/dev/env", "prod": "path/to/prod/env" } y crea tu aplicación con ng build --env=prod .
Aquí hay información más detallada: https://alligator.io/angular/environment-variables/