Per rispondere a una delle domande, è necessario disporre di un'installazione globale e locale affinché gli strumenti funzionino.
Se si tenta di eseguire ng serveun'applicazione senza l'installazione locale della CLI (solo installazione globale), verrà visualizzato il seguente errore.
È necessario essere all'interno di un progetto CLI angolare per utilizzare il comando serve.
Stampa anche questo messaggio:
Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"
Esegui quel npmcomando per aggiornare la CLI localmente ed evita l'avviso che stai ricevendo.
Altra domanda: sembra che non debbano essere sincronizzati, ma è probabilmente meglio che siano al fine di evitare comportamenti insoliti con lo strumento o eventuali incoerenze con il codice generato dallo strumento.
Perché abbiamo bisogno sia dell'installazione globale sia di un'installazione locale?
L'installazione globale è necessaria per avviare una nuova applicazione. Il ng new <app-name>comando viene eseguito utilizzando l'installazione globale della CLI. In effetti, se si tenta di eseguire ng newmentre si è all'interno della struttura di cartelle di un'applicazione CLI esistente, si ottiene questo adorabile errore:
Non è possibile utilizzare il newcomando all'interno di un progetto CLI angolare.
Altri comandi che possono essere eseguiti dal globale installazione sono ng help, ng get/setcon l' --globalopzione ng version, ng doce ng completion.
L'installazione locale della CLI viene utilizzata dopo la creazione di un'applicazione. In questo modo, quando sono disponibili nuove versioni della CLI, è possibile aggiornare l'installazione globale e non influire sull'installazione locale. Questo è buono per la stabilità di un progetto. La maggior parte dei ngcomandi ha senso solo con la versione locale, come lint, builde serve, ecc.
Secondo il file Leggimi di CLI GitHub , per aggiornare la CLI è necessario aggiornare il pacchetto globale e locale. Tuttavia, ho usato l'interfaccia della riga di comando in cui la versione globale e locale variano senza problemi finora. Se mai dovessi imbattermi in un errore relativo alla mancata sincronizzazione delle versioni della CLI locale e globale, lo pubblicherò qui.