Dies ist das erste Mal, dass ich eine Angular2-Anwendung bereitstellen möchte. Ich möchte die URL eines API-Endpunkts festlegen, und ich möchte, dass es in jeder Umgebung anders ist.
Gibt es eine Möglichkeit, ng build oder andere Tools zu erstellen, mit denen ich dies vor der Bereitstellung festlegen könnte?
Mit dem Angular CLI-Tool können Sie verschiedene Umgebungen konfigurieren.
ng build
kann sowohl ein Build-Ziel ( --target=production
oder --target=development
) als auch eine Umgebungsdatei angeben, die mit diesem Build verwendet werden soll ( --environment=dev
oder --environment=prod
). Standardmäßig werden das Entwicklungs-Build-Ziel und die Umgebung verwendet.
Das Mapping, mit dem festgestellt wird, welche Umgebungsdatei verwendet wird, finden Sie in angular-cli.json:
%Vor%Diese Optionen gelten auch für den Befehl serve. Wenn Sie keinen Wert für die Umgebung übergeben, wird standardmäßig dev für die Entwicklung und prod für die Produktion verwendet.
Sie können auch Ihre eigenen env-Dateien außer dev und prod hinzufügen.
Dann können Sie in Ihrem Code eine einfache Überprüfung durchführen, genau wie die Standard-Datei in der Datei main.ts:
%Vor%Sehen Sie sich den Abschnitt Ziele und Umgebungsdateien erstellen an in ihren Dokumenten für weitere Details.
PS: Hier ist eine ähnliche Frage , könnten Sie die Antworten dort auch nützlich finden.
Ja, und es ist tatsächlich ziemlich praktisch. Sehen Sie sich das Verzeichnis src/environments/
an. Sie haben dort mindestens 2 Dateien, eine davon ist environment.ts
. Ändere dieses nicht . Stattdessen sollten Sie Ihre verschiedenen env-bezogenen Konfigurationen in andere Dateien in diesem Verzeichnis einfügen, z. environment.prod.ts
.
Alles wird in dem Kommentar in src/environments/environment.ts
:
Der Dateiinhalt für die aktuelle Umgebung überschreibt diese beim Erstellen.
Das Build-System verwendet standardmäßig die Entwicklungsumgebung, die
environment.ts
verwendet, aber wenn Sie dies tun,
ng build --env=prod
thenenvironment.prod.ts
wird stattdessen verwendet.Die Liste, welche env zu welcher Datei gehört, kann in
angular-cli.json
gefunden werden.
Sie müssen also nur das in dieser Datei definierte const mit einem normalen Typoskript importieren, z.
%Vor%Dann können Sie es im Service einrichten:
%Vor%und jetzt injizieren Sie diesen Dienst an anderen Orten, wie jeder andere Dienst;)
Tags und Links angular angular-cli