J'essaie de construire une application Angular 5 avec la commande standard ng build --prod
, Et je veux définir l'API-Url de base dans le environment.prod.ts
Sur une valeur dépendant sur mes variables process.env
.
Ceci est mon dossier:
export const environment = {
production: true,
apiUrl: `${process.env.BASE_URL}` || 'http://localhost:8070/',
};
Mais lorsque j'essaie de générer l'application, l'erreur suivante se produit:
ERROR in src/environments/environment.ts(7,16): error TS2304: Cannot find name 'process'.
Comment définir mon URL-API en fonction d'une variable env lors de la création de l'application?
Vous n'aurez pas accès à process.env
à la compilation du Angular).
process.env
est disponible pour Node
applications, ce qui n'est pas le cas d'une Angular).
Vous avez plusieurs options:
1) Effectuez une tâche quelconque dans votre pipeline de construction pour mettre à jour le fichier d’environnement avec la valeur correcte s’il doit réellement être dynamique.
2) Il vous suffit de coder en dur et de créer plusieurs fichiers d’environnement correspondant à chacun de vos environnements. Vous pouvez spécifier vos environnements dans votre angular-cli.json.
L'option numéro 2 semble être la bonne pour vous. Dans ce cas, vous voulez mettre ceci dans votre angular-cli.json:
"environments": {
"dev": "path/to/dev/env",
"prod": "path/to/prod/env"
}
et construisez votre application avec ng build --env=prod
.
Voici des informations plus détaillées: https://alligator.io/angular/environment-variables/