web-dev-qa-db-fra.com

Utilisez process.env dans l’environnement Angular 5

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?

14
Freshchris

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/

11
chrispy