So aktualisieren Sie Angular CLI auf die neueste Version


102

Mit habe ng --versionich:

@ angle / cli: 1.0.0

Dies ist nicht die neueste verfügbare Version.

Da Angular CLI global auf meinem System installiert ist, habe ich Folgendes versucht, um es zu aktualisieren:

npm update angular-cli -g

Dies funktioniert jedoch nicht, da die Version 1.0.0 beibehalten wird.

Antworten:


827

Nachdem ich einige im GitHub-Repository gemeldete Probleme gelesen hatte, fand ich die Lösung.

Um das global in Ihrem System installierte Angular-Cli-Paket zu aktualisieren, müssen Sie Folgendes ausführen:

npm uninstall -g @angular-cli
npm install -g @angular/cli@latest

Abhängig von Ihrem System müssen Sie den obigen Befehlen möglicherweise ein Präfix voranstellen sudo.

Außerdem möchten Sie höchstwahrscheinlich auch Ihre lokale Projektversion aktualisieren, da diese in Ihrem Projektverzeichnis mit höherer Priorität als die globale ausgewählt wird:

rm -rf node_modules
npm uninstall --save-dev @angular-cli
npm install --save-dev @angular/cli@latest
npm install

danke grizzm0 für den Hinweis auf GitHub .

Nach dem Aktualisieren Ihrer CLI möchten Sie wahrscheinlich auch Ihre Angular-Version aktualisieren .

Hinweis : Wenn Sie zu Angular CLI 6+ von einer älteren Version aktualisieren, könnten Sie lesen müssen diese .

Bearbeiten : Wenn Sie noch eine 1.x-Version der CLI hatten, müssen Sie Ihre angular-cli.jsonin konvertieren angular.json, was Sie mit dem folgenden Befehl tun können:

ng update @angular/cli --from=1.7.4 --migrate-only

(Überprüfen Sie dies für weitere Details).


3
Pedantischer Alarm: Weitere Informationen zu Änderungen zwischen Versionen finden Sie auf der Registerkarte Releases auf GitHub. Link: github.com/angular/angular-cli/releases
Stuti Verma

14
Update 2017 (npm @ 5): Wenn Sie Ihren Cache wirklich bereinigen müssen: "npm cache clean --force"
Neyt

2
warum deinstallieren eckig-cli und nicht ganz @ eckig / cli?
YASH DAVE

4
Das Ausführen des Befehls npm cache clean löst den Fehler 'Ab npm @ 5 heilt sich der npm-Cache von Korruptionsproblemen selbst und die aus dem Cache extrahierten Daten sind garantiert gültig. Wenn Sie sicherstellen möchten, dass alles konsistent ist, verwenden Sie stattdessen "npm cache verify". "Wenn Sie erzwingen möchten, können Sie --force
Pushkal Boganatham

1
@PushkalBoganatham wie @neyt sagte, müssen Sie die --forceFlagge verwenden
svict4

149

ng6 + -> 7.0

RxJS aktualisieren (abhängig von RxJS 6.3)

npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json

Entfernen rxjs-compat

Aktualisieren Sie dann die Kernpakete und Cli:

ng update @angular/cli @angular/core

(Optional: Aktualisieren Sie Node.js auf Version 10, die in NG7 unterstützt wird.)

ng6 + (Cli 6.0+) : vereinfacht Befehle

Aktualisieren Sie zuerst Ihren Cli

npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli

Aktualisieren Sie dann Ihre Kernpakete

ng update @angular/core

Wenn Sie RxJS verwenden, führen Sie aus

ng update rxjs

Es wird RxJS auf Version 6 aktualisieren und das rxjs-compatPaket unter der Haube installieren .

Wenn Sie auf Build-Fehler stoßen, versuchen Sie eine manuelle Installation von:

npm i rxjs-compat
npm i @angular-devkit/build-angular

Zuletzt überprüfen Sie Ihre Version

ng v

Hinweis zum Produktionsaufbau:

NG6 nicht mehr Anwendungen intlinpolyfills.ts

//remove them to avoid errors
import 'intl';
import 'intl/locale-data/jsonp/en';

ng5 + (Cli 1,5+)

npm install @angular/{animations,common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router}@next typescript@2.4.2 rxjs@'^5.5.2'
npm install typescript@2.4.2 --save-exact

Hinweis:

  1. Die unterstützte Typescript-Version für Cli 1.6 zum Zeitpunkt des Schreibens ist bis zu 2.5.3.
  2. Mit @next wird das Paket auf Beta aktualisiert, sofern verfügbar. Verwenden Sie @latest, um die neueste Nicht-Beta-Version zu erhalten.

Leeren Sie nach dem Aktualisieren des globalen und des lokalen Pakets den Cache, um Fehler zu vermeiden:

npm cache verify (recommended)
npm cache clean (for older npm versions)

Hier sind die offiziellen Referenzen:

  1. Aktualisierung der Cli
  2. Aktualisieren der Kernpakete Kernpaket .

4
npm cache clean --force
Hat

1
Warum oh warum ist dieser Teil nicht in den Versionshinweisen!
Drenai

Können Sie bitte bestätigen, was Sie über die Ablehnung von RxJS 6 gesagt haben? Überall , wo ich sehen es scheint , dass v6 die aktuelle stabile Version ist github.com/ReactiveX/rxjs rxjs-dev.firebaseapp.com
Joey Gough

1
@ JoeyGough schöner Fang! Sg7 hängt von rxjs 6.3 ab. Vielen Dank für Ihren Kommentar. ref: github.com/angular/angular/blob/master/…
Pageii Studio

107

Sie können einfach verwenden

npm install -g angular-cli - Wenn es dein erstes Mal ist

npm install -g @angular/cli@latest - Wenn du bereits installiert bist, also zum Aktualisieren


37

Der leistungsstarke Befehl installiert und ersetzt das letzte Paket.

Ich hatte ein ähnliches Problem. Ich habe es repariert.

 npm install -g @angular/cli@latest

und

npm install --save-dev @angular/cli@latest

Geben Sie hier die Bildbeschreibung ein


Dies wird für eine lokale Angular CLI funktionieren. Überprüfen Sie meine Antwort, um die globale zu
verbessern

hat meine globale
Cli

35

Dieser Befehl funktioniert einwandfrei:

npm upgrade -g @angular/cli

22

Der folgende Ansatz hat bei mir funktioniert:

npm uninstall -g @angular/cli

dann

npm cache verify

dann

npm install -g @angular/cli@latest

Ich arbeite unter Windows 10, manchmal hatte ich zu verwenden: npm cache clean --forceals gut. Sie müssen dies nicht tun, wenn Sie während der Installation keine Probleme haben.


2
Sie müssen nicht angeben @latest, da die Standardeinstellung die neueste ist.
Ambroise Rabier

Wenn diese Lösung für Sie nicht funktioniert: stackoverflow.com/a/58678941/8718377
veben

17

Wenn Sie Probleme bei der Verwaltung Ihrer globalen CLI- Version haben, ist es besser, NVM: MAC , Windows zu verwenden .

Gehen Sie folgendermaßen vor, um die lokale CLI in Ihrem Angular-Projekt zu aktualisieren :

Ab CLI v6 können Sie einfach ausführen ng update, um Ihre Abhängigkeiten automatisch auf eine neue Version zu aktualisieren.

ng update @angular/cli

Mit ng updatemanchmal möchten Sie vielleicht --forceFlag hinzufügen .

Sie können auch das --allFlag übergeben, um alle Pakete gleichzeitig zu aktualisieren.

ng update --all --force

Wenn Sie nur die CLI migrieren möchten, führen Sie Folgendes aus:

ng update @angular/cli --migrateOnly

Sie können auch eine Flag- --from=fromVersion übergeben, von der aus migriert werden soll, z --from=1.7.4. Dieses Flag ist nur verfügbar, wenn ein einzelnes Paket aktualisiert wird, und nur bei Migration.

Stellen Sie nach Abschluss der Aktualisierung sicher, dass die von Ihnen installierte Version des Typoskripts von Ihrer aktuellen Winkelversion unterstützt wird. Andernfalls müssen Sie möglicherweise die Typoskriptversion herunterstufen. Beachten Sie auch, dass normalerweise die neueste Version von Angular die neueste Version des Typoskripts nicht unterstützt.

Kasse Angular CLI / Angular / NodeJS / TypescriptKompatibilitätsversionen hier

Lesen Sie auch dieses Handbuch. Aktualisieren Sie Ihre Angular-Projekte und update.angular.io


ALTE ANTWORT:
Alles, was Sie tun müssen, ist, mit Angular-Cli-Diff zu diffundieren und die Änderungen in Ihrem aktuellen Projekt anzuwenden.

Hier sind die Schritte:

  1. Angenommen, Sie gehen von 1.4. bis 1.5 dann machen Sie https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
  2. Klicken Sie auf die File changedRegisterkarte
  3. Übernehmen Sie die Änderungen auf Ihr aktuelles Projekt.
  4. npm install /. yarn
  5. Testen Sie alle npm scripts( weitere Details hier: https://stackoverflow.com/a/45431592/415078 )

14

Zusätzlich zu @ShinDarth Antwort .

Ich habe getan, was er gesagt hat, aber mein Paket hat die eckige Version nicht aktualisiert, und ich weiß, dass es in diesem Beitrag darum geht angular-cli, aber ich denke, dass dies auch helfen kann.

  • Nachdem ich das getan hatte, was @ShinDarth oben gesagt hatte, musste ich ein neues Projekt erstellen -ng new projectname, das ein Paket generierte , um meine Winkelversion zu reparieren .
  • Kopieren Sie das neue Paket und fügen Sie das neue Paket in alle zu aktualisierenden Projektpakete ein (denken Sie daran, die Abhängigkeiten hinzuzufügen, die Sie hatten, und ändern Sie den Namen in der ersten Zeile), oder Sie können die manuellen Versionen einfach ohne Kopieren und Einfügen ändern.
  • dann laufen -npm install.

Jetzt arbeitet mein ng servewieder, vielleicht gibt es einen besseren Weg, um all das zu tun, wenn jemand weiß, bitte teilen Sie, weil dies ein Schmerz ist, der mit allen Projekten zu tun hat, die aktualisiert werden müssen.


Sieht eher nach einer Ergänzung zu meiner Antwort als nach einer Antwort aus. Vielleicht können Sie sie als Kommentar unter meine Antwort verschieben?
Francesco Borzi

7
sry, du hast recht, aber ich brauche 50 Ruf, um deine Antwort zu kommentieren.
Leonardo Souza Paiva

9

Um Angular CLI auf eine neue Version zu aktualisieren , müssen Sie sowohl das globale Paket als auch das lokale Paket Ihres Projekts aktualisieren.

Globales Paket:

npm uninstall -g @angular/cli
npm cache clean
# if npm version is > 5 then use `npm cache verify` to avoid errors (or to avoid using --force)
npm install -g @angular/cli@latest

Lokales Projektpaket:

rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@latest
npm install

Quelle: Github


3

In meinem Fall habe ich angle-cli lokal mit npm install --save-dev angular-cli installiert. Wenn ich also den Befehl npm install -g @ angle / cli verwende, wird ein Fehler generiert, der besagt, dass "Ihre globale Angular CLI-Version (1.7.3) größer ist als Ihre lokale Version (1.4.9)" . Bitte beachten Sie, dass Angular-Cli, @ Angular / Cli und @ Angular / Cli @ Recent zwei verschiedene Cli sind. Was dies löst, ist, alle cli zu deinstallieren und dann die neueste Angular Cli mit npm install -g @ angle / cli @ latest zu installieren

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.