2017-09-08 2 views
0

J'ai une application Web Angular4, déployée sur Azure. Maintenant, je souhaite déployer cette application dans d'autres environnements sur Azure: un pour les tests, un pour l'acceptation et un pour la production. Chaque environnement a différents points de terminaison API et peut avoir d'autres variables, telles que Application Insights. Tous ces environnements fonctionnent Angular en mode production.Lire les paramètres de l'application Azure dans Angular4 CLI

La façon dont Angular vous conseille de le faire est par les fichiers Enviroment (environnement.test.ts, enviroment.acc.ts, environment.prod.ts). Je pourrais configurer tous les différents points de terminaison d'API dans ces fichiers, et exécuter ma construction avec --prod pour la production par exemple.

Mais ce n'est pas ce que je veux faire. Je veux utiliser exactement le même paquet d'application déployé pour tester mon environnement d'acceptation, sans reconstruire le projet. Dans Visual Studio Online, il est également très simple à configurer.

Le point est: comment puis-je différencier mes points de terminaison API par environnement de cette façon?

La façon dont je veux faire cela, est par les paramètres de l'application dans Azure. Mais Angular ne peut pas accéder à ces variables d'environnement car elles s'exécutent côté client. Node.js est en cours d'exécution sur le serveur et pourrait obtenir ces paramètres d'application - mais si c'est comme cela que je dois le faire, comment puis-je faire Node.js (utilisé dans Angular4 CLI) pour envoyer ces variables de serveur au client? Et qu'en est-il de l'impact sur les performances de cette solution?

Comment avez-vous résolu ce problème pour vos applications Angular4 sur Azure? Est-il simplement impossible de résoudre ce problème avec les paramètres de l'application Azure?

+0

Cochez ici: [Comment accéder aux valeurs des paramètres de l'application d'application Web Azure dans un fichier de type] (https://stackoverflow.com/questions/40858448/how-to-access-the-azure-web-app-application -setting-values-in-to-typescript-file), et ici: [angulaire 2 app sur azure lire les paramètres de l'application] (https://stackoverflow.com/questions/42634154/angular-2-app-on-azure- read-app-settings). –

+0

Merci pour votre commentaire! Mais je ne peux pas utiliser le premier lien, parce que je n'ai pas de fichier index.cshtml (je suis pur sur clientide avec mon code angulaire). Le deuxième lien dit simplement que c'est impossible à faire. J'ai peur que ce soit ... mais j'espère toujours qu'il y a quelque chose de possible pour le faire de cette façon. – Richh94

Répondre

0

Pour tout le monde avec la même question: Je n'ai pas résolu ce problème comme je l'ai décrit ci-dessus. À la fin, je l'ai fait comme Angular veut que vous le fassiez: donc reconstruire pour le dev, reconstruire pour acc et reconstruire pour prod. Dans Visual Studio Online, au moment de la construction, il construit et teste notre code et enregistre le code non compilé/non-confirmé. Au moment de la publication, il le construit et le relance dans le bon environnement avec les bonnes variables d'environnement (--prod par exemple).

Je ne pense pas qu'il existe une autre façon de résoudre ce problème.