Ich versuche herauszufinden, wie ich die Umgebungsvariablen am besten in meine AngularJS-App laden kann. Ich verwende momentan Konstanten, die ihre Werte von denen im Webpack definePlugin
definierten Werten übernehmen. Dies führt jedoch zu einem Problem mit Heroku, da der Code erstellt wird, wenn er in das Staging verschoben wird, und wenn er zur Produktion hochgestuft wird, wird er nicht neu erstellt. Daher sind die Webpack-Konstanten definePlugin
die Staging-Umgebungsvariablen.Angular App auf Heroku mit Webpack - Environment-Variablen gebaut?
Ich habe untersucht, die Umgebungsvariablen von meiner API zur Laufzeit anfordern und dann als Konstanten in meinem Front-End verwendet werden, aber ich kann nicht herausfinden, wie Sie programmatisch außerhalb der ursprünglichen .constant(..)
setzen Gelegenheit.
Wenn jemand andere bessere Praktiken zum Laden von Umgebungsvariablen in ein Front-End bei Verwendung von Webpack (und nicht von Grunt) kennt, lassen Sie es mich bitte wissen.
Würde dies auch passieren, wenn die App aus irgendeinem Grund zufällig neu gestartet werden würde? Dies ist eine sehr saubere Option, aber ich bin mir nicht sicher, wie gefährlich es ist. –
Mit dieser Option würde Webpack jedes Mal ausgeführt werden, wenn npm start ausgeführt wird. Auf Heroku bedeutet das also jedes Mal, wenn die App recycelt oder aus einem anderen Grund neu gestartet wird (z. B. wenn Sie Umgebungsvariablen ändern, von einer Pipeline-App zu einer anderen propagieren usw.). –
Wie bereits erwähnt, erhöht diese Lösung die Ausfallzeit Ihrer Prüfstände beim Recycling usw. Sie müssen sicherstellen, dass dies kein Problem für Ihre App darstellt. Es gibt natürlich Möglichkeiten, dies zu umgehen (siehe z. B. https://devcenter.heroku.com/articles/preboot), aber Sie müssen sich der Auswirkungen bewusst sein. –