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?
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
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:
--env
wird in angular 6
nicht unterstützt--env
wurde in --configuration
|| geändert -c
(und ist jetzt mächtiger)angular.json
-Datei vornehmen: { ... "build": "configurations": ...
eine neue Konfiguration hinzufileReplacements
-Teil enthalten (es sind jedoch weitere Optionen verfügbar){ ... "serve": "configurations": ...
eine neue Konfiguration hinzubrowserTarget="your-project-name:build:staging"
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.
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.
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.
Verwenden Sie diesen Befehl zum Erstellen von Angular 6
ng build --prod --configuration=dev
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