AngularJS 2: Umgang mit der App-Konfiguration für verschiedene Umgebungen

9

Das folgende Szenario: Ich baue eine AngularJS 2-App, die eine REST-API verwendet (die mit Elixir oder RoR oder was auch immer gebaut werden könnte). Während der Entwicklung möchte ich, dass AngularJS eine andere API verwendet als in der Produktion (vielleicht mit Testdaten, vielleicht weil ich die API zur gleichen Zeit erstelle und sie auf meinem Rechner läuft).

Außerdem möchten andere Mitglieder meines Teams möglicherweise eine andere lokale API-Adresse verwenden. Das heißt, das sollte nicht in das Versionskontrollsystem gehen.

So könnte zum Beispiel die api_base_url für mich http://localhost:4000 , für meine Kollegin http://testapi.local und für die Produktion http://api.example.com sein.

Der Wert api_base_url sollte in mehreren Komponenten verfügbar sein.

Was ist ein guter Ansatz, um damit umzugehen?

    
Ole Spaarmann 31.03.2016, 14:12
quelle

2 Antworten

4

Sie könnten einen dedizierten Anbieter definieren, der diese Hinweise bereitstellt. So ähnlich:

%Vor%

Wenn Sie Ihren Code für die Produktion verpacken, können Sie die Datei, die diesen Code enthält, durch die mit der Konfiguration für die Produktion ersetzen.

Um diese Konfiguration zu berücksichtigen, können Sie die Klasse RequestOptions so erweitern, dass sie Ihrer gesamten Anfrage das Präfix apiBaseUrl vorangestellt:

%Vor%

Vergessen Sie nicht, die Anfrageoptionen beim Booten Ihrer Anwendung zu konfigurieren:

%Vor%

Diese Verarbeitung könnte in einer dedizierten JS-Datei enthalten sein, die innerhalb des Builds ersetzt würde (beispielsweise mit gulp und gulp-html-replace).

Siehe diese Frage:

Für den letzten Schritt können Sie die Anwendung auch asynchron basierend auf einer Konfigurationsdatei laden:

%Vor%

Siehe diese Frage für weitere Details:

Thierry Templier 31.03.2016, 14:15
quelle
0

Vielleicht solltest du Grunt ausprobieren. Beispiel: Ссылка

    
Rozzy 31.03.2016 14:19
quelle

Tags und Links