Da Angular 6 hier ist, möchte ich meine Angular 5-Clientanwendung aktualisieren oder auf Angular 6 verschieben, aber ich erhalte kein Tutorial oder etwas, das mich durch das Programm führen kann.
Meiner Meinung nach muss ich nur eine neue Angular-CLI ausführen und dann meine ältere Quelle in ein neues Projekt verschieben. Ich habe gelesen, dass Angular 6 einen neuen Renderer namens Ivy verwendet. Muss ich mein Projekt gemäß Ivy ändern?
angular
migration
upgrade
angular-ivy
Abhishek Chokra
quelle
quelle
Antworten:
Upgrade von Angular v6 auf Angular v7
Version 7 von Angular wurde veröffentlicht. Offizieller Angular-Blog-Link . Ausführliche Informationen finden Sie im offiziellen Angular Update-Handbuch https://update.angular.io . Diese Schritte funktionieren für grundlegende Angular 6-Apps mit Angular Material.
Upgrade von Angular v5 auf Angular v6
Version 6 von Angular wurde veröffentlicht. Offizieller Angular-Blog-Link . Ich habe unten allgemeine Upgrade-Schritte erwähnt, aber vor und nach dem Update müssen Sie Änderungen an Ihrem Code vornehmen, damit er in Version 6 funktioniert. Ausführliche Informationen finden Sie auf der offiziellen Website https://update.angular.io .
Upgrade-Schritte (weitgehend aus dem offiziellen Angular Update-Handbuch für eine grundlegende Angular-App mit Angular Material entnommen ):
Stellen Sie sicher, dass die NodeJS-Version 8.9+ ist, wenn Sie sie nicht aktualisieren.
Aktualisieren Sie Angular Cli global und lokal und migrieren Sie die alte Konfiguration .angular-cli.json in das neue Angular.json- Format, indem Sie Folgendes ausführen :
Aktualisieren Sie alle Ihre Angular-Framework-Pakete auf Version 6 und die richtige Version von RxJS und TypeScript, indem Sie Folgendes ausführen:
Aktualisieren Sie Angular Material auf die neueste Version, indem Sie Folgendes ausführen:
RxJS v6 hat wesentliche Änderungen gegenüber v5. V6 bietet das Abwärtskompatibilitätspaket rxjs-compatible, mit dem Ihre Anwendungen weiterhin funktionieren. Sie sollten jedoch den TypeScript-Code umgestalten, damit er nicht von rxjs-kompatibel abhängt. Führen Sie die folgenden Schritte aus, um TypeScript-Code umzugestalten:
Hinweis: Wenn alle Ihre Abhängigkeiten auf RxJS 6 aktualisiert wurden, entfernen Sie rxjs- compatible, da dadurch die Bundle-Größe erhöht wird. Weitere Informationen finden Sie in diesem RxJS-Upgrade-Handbuch .
Fertig laufen
ng serve
, um es zu überprüfen.Wenn beim Erstellen Fehler auftreten, finden Sie unter https://update.angular.io detaillierte Informationen.
Upgrade von Angular v5 auf Angular 6.0.0-rc.5
Aktualisieren Sie rxjs auf 6.0.0-beta.0. Weitere Informationen finden Sie in diesem RxJS-Upgrade-Handbuch . RxJS v6 hat bahnbrechende Änderungen, daher machen Sie Ihren Code zuerst mit der neuesten RxJS-Version kompatibel.
Aktualisieren Sie die NodeJS-Version auf 8.9+ (dies wird von der Angular Cli 6-Version benötigt).
Aktualisieren Sie das globale Paket Angular cli auf die nächste Version.
Wenn die npm-Version <5 ist, verwenden Sie
npm cache clean
Ändern Sie die Versionen der Winkelpakete in der Datei package.json in
^6.0.0-rc.5
Nächstes Update des lokalen Angular cli-Pakets auf die nächste Version und Installation der oben genannten Pakete.
Das Angular CLI-Konfigurationsformat wurde gegenüber der Angular CLI 6.0.0-rc.2-Version geändert, und Ihre vorhandene Konfiguration kann automatisch aktualisiert werden, indem der folgende Befehl ausgeführt wird. Es entfernt die alte Konfigurationsdatei .angular-cli.json und schreibt eine neue angular.json- Datei.
ng update @angular/cli --migrate-only --from=1.7.4
Hinweis: - Wenn die folgende Fehlermeldung angezeigt wird: "Der Angular Compiler benötigt TypeScript> = 2.7.2 und <2.8.0, aber stattdessen wurde 2.8.3 gefunden." Führen Sie den folgenden Befehl aus:
quelle
bash: rxjs-5-to-6-migrate: command not found
. Irgendwelche Gedanken?ng update @angular/core
in meinem ionischen ProjektordnerInvalid range: "*"
"@angular-devkit/build-angular"
von ... Also das behoben durchnpm install @angular-devkit/build-angular --save-dev
. Abgesehen davon hatte ich Bibliotheken zu aktualisieren , die vorherigen rxjs-compat verwendet hatten, wieng update @ngx-translate/core
,ng update @ng-bootstrap/ng-bootstrap
, weil einige von ihnen nicht richtig aktualisiert.Angular 6 wurde gerade veröffentlicht.
https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
Hier ist, was für eines meiner kleineren Projekte funktioniert hat
Möglicherweise müssen Sie Ihre Ausführungsskripte in package.json aktualisieren. Wenn Sie Flags wie "App" und "Umgebung" verwenden, wurden diese auf "Projekt" bzw. "Konfiguration" aktualisiert.
Weitere Informationen finden Sie unter https://update.angular.io/ .
quelle
Verwenden Sie einfach den offiziellen Upgrade-Leitfaden, der Ihnen sagt, was Sie für Ihre speziellen Anforderungen tun müssen:
https://update.angular.io/
quelle
Überprüfen Sie die schrittweisen Upgrade-Details von Angular 5 auf Angular 6. Hier finden Sie Details zu Problemen, die beim Upgrade auftreten, und wie Sie diese beheben können.
Namensänderung des Operators:
Alle Operatoren sind zu rxjs / operator gewechselt
Beobachtbare Erstellungsmethoden werden nach rxjs verschoben
Sie sind fertig. Willkommen bei Angular 6 :) In meinem Blogbeitrag erfahren Sie, wie Sie ein Upgrade durchführen können
quelle
Ich musste ng update @ angle / cli erneut ausführen, damit angular-cli.json in angular.json geändert wurde
quelle
Führen Sie die folgenden Kommentare aus, um von Angular 5 auf Angular 6 zu aktualisieren
quelle
Komplette Anleitung
----------------- Mit Angular-Cli --------------------------
1. Aktualisieren Sie die CLI global und lokal
Verwenden von NPM (stellen Sie sicher, dass Sie die Knotenversion 8+ haben)
npm uninstall -g @angular/cli npm cache clean npm install -g @angular/cli@latest npm i @angular/cli --save
Garn verwenden
yarn remove @angular/cli yarn global add @angular/cli yarn add @angular/cli
2. Abhängigkeiten aktualisieren
Winkel 6 hängt jetzt von TypeScript 2.7 und RxJS 6 ab
Normalerweise würde das bedeuten, dass Sie Ihren Code überall dort aktualisieren müssen, wo RxJS-Importe und -Operatoren verwendet werden, aber zum Glück gibt es ein Paket, das sich um die meisten schweren Aufgaben kümmert:
Dann können Sie rxjs-5-to-6-migrate ausführen
endlich entfernen rxjs-kompatibel
Siehe diesen Link https://alligator.io/angular/angular-6/
------------------- Ohne Angular-Cli -------------------------
Sie müssen Ihre
package.json
Datei also manuell aktualisieren .Dann renne
quelle
bash: rxjs-5-to-6-migrate: command not found
erhalte beim Versuch, den Befehl rxjs-5-to-6-migrate auszuführen. Irgendwelche Gedanken?Wie Vinay Kumar betonte, wird die global installierte Angular CLI nicht aktualisiert. Um es global zu aktualisieren, verwenden Sie einfach die folgenden Befehle:
Hinweis: Wenn Sie ein vorhandenes Projekt aktualisieren möchten, müssen Sie das vorhandene Projekt ändern. Sie sollten package.json in Ihrem Projekt ändern .
Es gibt keine wesentlichen Änderungen in Angular selbst, aber sie befinden sich in RxJS. Vergessen Sie also nicht, die rxjs-kompatible Bibliothek zu verwenden, um mit Legacy-Code zu arbeiten.
Ich habe einen guten Artikel über die Installation / Aktualisierung von Angular CLI geschrieben. Http://bmnteam.com/angular-cli-installation/
quelle
Führen Sie einfach den folgenden Befehl aus:
ng update
Hinweis: Dies wird nicht global aktualisiert.
quelle
So bringe ich es zum Laufen.
Meine Umgebung:
Angular CLI Global: 6.0.0, Local: 1.7.4, Angular: 5.2, Typescript 2.5.3
ng update //update Angular Package core/common/complier... to 6.0.0
ng update @angular/cli //change angular-cli.json to angular.json
Optional, wenn Sie Winkelmaterial 5.4.2, ngx-translate 9.1.1, ng-bootstrap / ng-bootstrap 1.1.1 haben:
ng update @angular/material //upgrade to 6.0.1
npm install @ngx-translate/[email protected] --save //upgrade ngX translate to 10.0.1 for Angular 6
5
npm install --save @ng-bootstrap/[email protected] //for ng-bootstrap
Wenn Sie Observable verwenden und den Fehler erhalten:
ERROR in node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'. node_modules/rxjs/observable/of.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/observable/of'.
Veränderung:
import { Observable } from "rxjs/Observable"; import { of } from 'rxjs/observable/of';
Zu
import { Observable, of } from "rxjs";
Angular CLI-Problem: https://github.com/angular/angular-cli/issues/10621
quelle
Es gibt nur wenige Schritte, um 2/4/5 auf Angular 6 zu aktualisieren.
So beheben Sie das Problem im Zusammenhang mit "angle.json": -
Speichern Sie MIGRATION
https://github.com/ngrx/platform/blob/master/MIGRATION.md#ngrxstore
RXJS MIGRATION
https://www.academind.com/learn/javascript/rxjs-6-what-changed/
Ich hoffe das hilft dir :)
quelle