Angular 2 - angular-cli: Setze globale Variable auf Build

10

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?

    
blgrnboy 18.11.2016, 18:40
quelle

2 Antworten

9

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.

    
Kaloyan Kosev 18.11.2016, 18:48
quelle
7

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 :

schön erklärt
  

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 then environment.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;)

    
Tomek Sułkowski 18.11.2016 18:46
quelle

Tags und Links