Global Angular CLI-Version größer als lokale Version


353

Beim Ausführen wird ng servedie Warnung angezeigt, dass meine globale CLI-Version größer als meine lokale Version ist. Ich habe keine Probleme mit dieser Warnung bemerkt, aber ich habe mich gefragt, ob die beiden Versionen synchron sein sollten. Ist es auch erforderlich, eine lokale Version zu haben, wenn Sie eine globale Version haben?

Die Warnung:

Ihre globale Angular CLI-Version (1.1.1) ist größer als Ihre lokale Version (1.0.6). Die lokale Angular CLI-Version wird verwendet.


43
Kann jemand antworten, warum wir sowohl lokal als auch global brauchen?
Rap

Antworten:


464

Um eine der Fragen zu beantworten, muss sowohl eine globale als auch eine lokale Installation vorhanden sein, damit die Tools funktionieren.

Wenn Sie versuchen, ng serveeine Anwendung ohne die lokale Installation der CLI auszuführen (nur globale Installation), wird der folgende Fehler angezeigt.

Sie müssen sich in einem Angular CLI-Projekt befinden, um den Befehl serve verwenden zu können.

Diese Nachricht wird auch gedruckt:

Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"

Führen Sie diesen npmBefehl aus, um die CLI lokal zu aktualisieren, und vermeiden Sie die Warnung, die Sie erhalten.

Frage: Es sieht aus wie sie nicht haben synchron sein, aber es ist wahrscheinlich am besten , dass sie in Ordnung sind ungewöhnliche Verhalten mit dem Werkzeug zu vermeiden oder Unstimmigkeiten mit dem Code des Werkzeug erzeugt.

Warum benötigen wir sowohl die globale als auch eine lokale Installation?

Die globale Installation wird benötigt, um eine neue Anwendung zu starten. Der ng new <app-name>Befehl wird mithilfe der globalen Installation der CLI ausgeführt. Wenn Sie versuchen, ng newin der Ordnerstruktur einer vorhandenen CLI-Anwendung ausgeführt zu werden, wird der folgende Fehler angezeigt:

Sie können den newBefehl nicht in einem Angular CLI-Projekt verwenden.

Andere Befehle , die von den globalen ausgeführt werden können installieren ng help, ng get/setmit der --globalOption, ng version, ng doc, und ng completion.

Die lokale Installation der CLI wird verwendet, nachdem eine Anwendung erstellt wurde. Auf diese Weise können Sie Ihre globale Installation aktualisieren, wenn neue Versionen der CLI verfügbar sind, ohne die lokale Installation zu beeinträchtigen. Dies ist gut für die Stabilität eines Projekts. Die meisten ngBefehle nur dann Sinn , mit der lokalen Version machen, wie lint, buildund serveetc.

Gemäß der CLI GitHub- Readme- Datei müssen Sie zum Aktualisieren der CLI das globale und lokale Paket aktualisieren. Ich habe jedoch die CLI verwendet, bei der die globale und die lokale Version bisher problemlos variieren. Wenn ich jemals auf einen Fehler stoße, der darauf zurückzuführen ist, dass die globalen und lokalen CLI-Versionen nicht synchron sind, werde ich dies hier veröffentlichen.


Es gibt keine Möglichkeit, die CLI zu aktualisieren. Beispielsweise möchte ich die Installation von Modulen mit meiner vorhandenen CLI-Version ausführen. oder gibt es keine Möglichkeit, beim Ausführen eines Befehls zu erzwingen, die lokale CLI zu verwenden, nicht die globale?
Mohammed Yassine CHABLI

3
Die lokale Version der CLI wird standardmäßig verwendet, wenn Befehle in einem CLI-Projektverzeichnis ausgeführt werden. Das steht auch in der Warnung.
R. Richards

aber ich weiß nicht, warum diese Lösung bei mir nicht funktioniert. Was ist, wenn ich in meinem package.json den Wert meines angle-cli = "^ 1.0.6" erwähne? diese Arbeit, aber immer noch nicht zu verstehen, was passiert?
Mohammed Yassine CHABLI

1
npm deinstallieren -g @ angle / cli, npm cache clear --force, npm install @ angle / cli
Hesham Yassin

1
@ Doug Das ist richtig. Sie erhalten eine Warnung, wenn Sie diese Befehle für ein Projekt mit einer niedrigeren Version der CLI ausführen. Sie können sie jedoch ignorieren. Die Warnung besagt nur, dass die Versionen unterschiedlich sind und die lokale CLI verwendet wird.
R. Richards

152

So habe ich das Problem gelöst.

Installieren Sie das neueste Angular CLI-Paket lokal

Kopieren Sie diese Befehle und führen Sie sie aus

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

1
Ich würde hinzufügen, dass Schritt 1.5 (wenn Sie so wollen) ist : rm node_modules/.bin/ng. Hat perfekt funktioniert.
Bretonics

41

Dies funktioniert bei mir: Die lokale Version wird auf den neuesten Stand gebracht

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

um die Version zu überprüfen

  ng --version

Ich habe das in einen alten Windoze-Batch-Befehl konvertiert: CALL npm deinstallieren --save-dev @ angle / cli CALL npm installieren --save-dev @ angular / cli @ neueste CALL npm installieren CALL ng --version
Lee H

1
Hab deine Schritte gemacht. Versucht ng serve --openund erhalten "Diese Version von CLI ist nur mit Angular Version 5.0.0 oder höher kompatibel. Unter dem folgenden Link finden Sie Anweisungen zum Aktualisieren von Angular. Angular-update-guide.firebaseapp.com "
Aggie Jon vom 87.

17
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest

Dann in Ihrem lokalen Projektpaket:

rm -rf node_modules dist 
npm install --save-dev @angular/cli@latest
npm i 
ng update @angular/cli 
ng update @angular/core
npm install --save-dev @angular-devkit/build-angular

Wurde unter Fehler Fehler: Unerwartetes Ende der JSON-Eingabe Unerwartetes Ende der JSON-Eingabe Die oben genannten Schritte wurden in diesem Beitrag unterstützt. Angular kann nicht auf Version 6 aktualisiert werden


1
npm install --save-dev @ angle-devkit / build-angle - hat ng update @ angular / cli geholfen -> hat angle.json und andere Updates erstellt.
MPV

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

Ihre vorhandene Konfiguration kann automatisch aktualisiert werden, indem Sie den folgenden Befehl ausführen:

ng update @angular/cli

oder:

npm install

8

In meinem Fall habe ich diesen Befehl gerade in project verwendet:

ng update @angular/cli

4

Führen Sie den folgenden Befehl aus: npm install --save-dev @angular/cli@latest

Nach dem Ausführen des obigen Befehls zeigt die Konsole möglicherweise die folgende Meldung an

Das Angular CLI-Konfigurationsformat wurde geändert, und Ihre vorhandene Konfiguration kann automatisch aktualisiert werden, indem Sie den folgenden Befehl ausführen: ng update @ angle / cli


4

Ich spreche Englisch nicht fließend

Aber wenn ich das Problem verstehe, haben Sie lokal im Projekt eine ältere Version von CLI als global?

Und möchten Sie diese globale neuere anstelle der lokalen älteren verwenden?

In diesem Fall reicht eine sehr einfache Methode aus, um im Projektverzeichnis ausgeführt zu werden npm link @angular/cli

mehr zum Thema auf der Seite: https://docs.npmjs.com/cli/link


2

Finden Sie zuerst die globale Angular-Cli-Version heraus, indem Sie ausführen

ng --version

Der obige Code zeigt, um welche Version es sich bei den globalen und lokalen Angular-Cli-Versionen handelt.

Wenn Sie möchten, dass der globale und der lokale Winkel-Cli gleich sind, können Sie dies einfach tun

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

Dabei ist 1.7.4 Ihre globale Angular-Cli-Version

Wenn Sie dann ng serve --openIhren Code ausführen, sollte er ausgeführt werden.


2

Sie müssen nur das AngularCli aktualisieren

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

0

Aktualisieren Sie die Angular-CLI für einen Arbeitsbereich (lokal).

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

Hinweis: Stellen Sie sicher, dass die globale Version mit dem Befehl '-g' installiert wird, wenn sie ordnungsgemäß installiert wurde.

npm install -g @angular/cli@latest

Führen Sie den Befehl Aktualisieren aus, um eine Liste aller Abhängigkeiten abzurufen, die aktualisiert werden müssen

ng update

Weiter Führen Sie den folgenden Aktualisierungsbefehl für jedes einzelne Angular-Kernpaket aus

ng update @angular/cli @angular/core

Ich musste jedoch zusätzlich den Befehl '–force' und '–allow-dirty' Flags hinzufügen, um alle anderen ausstehenden Probleme zu beheben.

ng update @angular/cli @angular/core --allow-dirty --force

0

Dies sollte das Problem lösen:

ng update @angular/cli @angular/core

0

Mach einfach diese Dinge

npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force

1
Da diese Frage fast 3 Jahre alt ist und 14 Antworten enthält, wäre Ihre Antwort viel wertvoller, wenn Sie erklären würden, warum Ihre Antwort von Wert ist, die nicht von allen vorhandenen Antworten abgedeckt wurde.
David Buck

-1

npm install --save-dev @ angle-devkit / build-angle - hat ng update @ angular / cli geholfen -> hat angle.json und andere Updates erstellt.

Installierte Abhängigkeiten sammeln ... 58 Abhängigkeiten gefunden.

 ** Executing migrations for package '@angular/cli' **
            Updating karma configuration
            Updating configuration
            Removing old config file (.angular-cli.json)
            Writing config file (angular.json)
            Some configuration options have been changed, please make sure to update any  npm scripts which you may have modified. DELETE .angular-cli.json CREATE angular.json (4394 bytes) CREATE browserslist (429 bytes) UPDATE karma.conf.js (993 bytes) UPDATE public/tsconfig.spec.json (295 bytes) UPDATE package.json (2618 bytes) UPDATE tsconfig.json (437 bytes) UPDATE tslint.json (3135 bytes) UPDATE public/polyfills.ts (587 bytes) UPDATE public/tsconfig.app.json (199 bytes) npm WARN @angular/core@5.2.9 requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.

-1

Entfernen Sie den aktuellen Winkel und installieren Sie die spezifische Version.

  1. Überprüfe die Version

    ng --version

  2. Wenn nicht erforderlich, deinstallieren Sie die Version

    npm deinstalliere -g @ angle / cli

  3. wenn npm vesrion <5.x

    npm Cache sauber

  4. Überprüfen Sie den Cache

    npm Cache überprüfen

  5. Installieren Sie die spezifische Version

    npm install -g @ angle / cli @ major.minor.patch

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.