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 serve
eine 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 npm
Befehl 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 new
in der Ordnerstruktur einer vorhandenen CLI-Anwendung ausgeführt zu werden, wird der folgende Fehler angezeigt:
Sie können den new
Befehl nicht in einem Angular CLI-Projekt verwenden.
Andere Befehle , die von den globalen ausgeführt werden können installieren ng help
, ng get/set
mit der --global
Option, 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 ng
Befehle nur dann Sinn , mit der lokalen Version machen, wie lint
, build
und serve
etc.
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.