wake-up-neo.com

So legen Sie die Umgebung über "ng serve" in Angular 6 fest

Ich versuche, meine Angular 5.2-App auf Angular 6 zu aktualisieren. Ich habe die Anweisungen im Angular-Aktualisierungshandbuch (einschließlich der Aktualisierung von angular-cli auf v6) erfolgreich befolgt, und jetzt versuche ich, die App über

ng serve --env=local

Aber das gibt mir Fehler:

Unbekannte Option: '--env'

Ich verwende mehrere Umgebungen (dev/local/prod), und so funktionierte es in Angular 5.2. Wie kann ich jetzt die Umgebung in Angular 6 einstellen?

92
Martin Adámek

Sie müssen die neue Option configuration verwenden (dies funktioniert auch für ng build und ng serve).

ng serve --configuration=local

oder

ng serve -c local

Wenn Sie Ihre angular.json-Datei betrachten, haben Sie eine feinere Kontrolle über die Einstellungen für jede Konfiguration (aot, Optimizer, Umgebungsdateien, ...).

"configurations": {
  "production": {
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "extractLicenses": true,
    "vendorChunk": false,
    "buildOptimizer": true,
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.prod.ts"
      }
    ]
  }
}

Weitere Informationen erhalten Sie hier zum Verwalten von umgebungsspezifischen Konfigurationen. 

Wie Sie in der anderen Antwort unten sehen, müssen Sie, wenn Sie eine neue 'Umgebung' hinzufügen müssen, der Aufgabe build eine neue Konfiguration und je nach Ihren Bedürfnissen der Serve und test Aufgaben ebenfalls.

Hinzufügen einer neuen Umgebung

Bearbeiten: Um dies deutlich zu machen, müssen Sie im Abschnitt build das Ersetzen von Dateien angeben. Wenn Sie ng serve mit einer bestimmten environment-Datei (beispielsweise dev2) verwenden möchten, müssen Sie zunächst den Abschnitt build ändern, um eine neue dev2-Konfiguration hinzuzufügen 

"build": {
   "configurations": {
        "dev2": {

          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.dev2.ts"
            }
            /* You can add all other options here, such as aot, optimization, ... */
          ],
          "serviceWorker": true
        },

Ändern Sie dann Ihren Abschnitt serve, um auch eine neue Konfiguration hinzuzufügen, und zeigen Sie auf die Konfiguration von dev2build, die Sie gerade deklariert haben

"serve":
      "configurations": {
        "dev2": {
          "browserTarget": "projectName:build:dev2"
        }

Dann können Sie ng serve -c dev2 verwenden, das die dev2-Konfigurationsdatei verwendet

157
David

Die Antwort auf " https://stackoverflow.com/a/50174679/1484847 " scheint gut zu sein. Sie führt jedoch zu einem Fehler, da sie zu Configuration 'xyz' could not be found in project ...-Fehlern in build führt. Es ist nicht nur für aktualisierte build -Konfigurationen, sondern auch für serve .__ erforderlich. Einsen.

Also nur um keine Verwirrungen zu hinterlassen:

  1. --env wird in angular 6 nicht unterstützt
  2. --env wurde in --configuration || geändert -c (und ist jetzt mächtiger)
  3. um verschiedene Umgebungen verwalten zu können, müssen Sie neben dem Hinzufügen einer neuen Umgebungsdatei einige Änderungen in der angular.json-Datei vornehmen:
    • fügen Sie in der Eigenschaft build{ ... "build": "configurations": ... eine neue Konfiguration hinzu
    • neuer Build-Konfiguration darf nur fileReplacements-Teil enthalten (es sind jedoch weitere Optionen verfügbar)
    • fügen Sie in der Eigenschaft serve{ ... "serve": "configurations": ... eine neue Konfiguration hinzu
    • new Servekonfiguration enthält browserTarget="your-project-name:build:staging" 
31
garfunkel61

Sie können versuchen: ng serve --configuration=dev/prod

Verwenden Sie zum Erstellen: ng build --prod --configuration=dev

Ich hoffe, Sie verwenden eine andere Umgebung.

3
amku91

Für Winkel 2 - 5 siehe Artikel Multiple Umgebung in Winkel

Für Angular 6 verwenden Sie ng serve --configuration=dev

Hinweis: Siehe Winkel 6 auch im gleichen Artikel. Wo auch immer Sie --env finden, verwenden Sie stattdessen --configuration. Das funktioniert gut für Winkel 6.

2

Angular unterstützt nicht mehr --env, sondern muss verwendet werden

ng serve --c dev

für die Entwicklungsumgebung und

ng serve --c prod 

für die Produktion. Hoffe das hilft.

0
Shilpa Soni

Verwenden Sie diesen Befehl zum Erstellen von Angular 6

ng build --prod --configuration=dev
0
Sateesh

Sie können den Befehl ng serve -c dev für die Entwicklungsumgebung verwenden ng serve -c prod für die Produktionsumgebung

beim Bauen gilt auch das Gleiche. Sie können ng build -c dev für dev build verwenden

0