Pour répondre à l'une des questions, il est nécessaire d'avoir une installation globale et locale pour que les outils fonctionnent.
Si vous essayez d'exécuter ng serve
sur une application sans l'installation locale de la CLI (installation globale uniquement), vous obtiendrez l'erreur suivante.
Vous devez être à l'intérieur d'un projet CLI angulaire pour utiliser la commande serve.
Il imprimera également ce message:
Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"
Exécutez cette npm
commande pour mettre à jour la CLI localement et éviter l'avertissement que vous obtenez.
Autre question: il semble qu'ils ne doivent pas être synchronisés, mais il est probablement préférable qu'ils le soient afin d'éviter tout comportement inhabituel avec l'outil ou toute incohérence avec le code généré par l'outil.
Pourquoi avons-nous besoin à la fois de l'installation globale et d'une installation locale?
L'installation globale est nécessaire pour démarrer une nouvelle application. La ng new <app-name>
commande est exécutée à l'aide de l'installation globale de la CLI. En fait, si vous essayez de vous lancer ng new
dans la structure de dossiers d'une application CLI existante, vous obtenez cette belle erreur:
Vous ne pouvez pas utiliser la new
commande dans un projet CLI angulaire.
D' autres commandes qui peuvent être exécutées à partir de la installation globale sont ng help
, ng get/set
avec l' --global
option ng version
, ng doc
et ng completion
.
L'installation locale de l'interface CLI est utilisée après la création d'une application. De cette façon, lorsque de nouvelles versions de l'interface CLI sont disponibles, vous pouvez mettre à jour votre installation globale et ne pas affecter l'installation locale. C'est bon pour la stabilité d'un projet. La plupart des ng
commandes n'ont de sens qu'avec la version locale, comme lint
, build
et serve
, etc.
Selon le fichier Lisezmoi CLI GitHub , pour mettre à jour la CLI, vous devez mettre à jour le package global et local. Cependant, j'ai utilisé la CLI où la version globale et locale varient sans problème jusqu'à présent. Si jamais je rencontre une erreur liée à la désynchronisation des versions CLI globale et locale, je la publierai ici.