Version Global Angular CLI supérieure à la version locale

354

Lors de l'exécution, ng servej'obtiens cet avertissement indiquant que ma version CLI globale est supérieure à ma version locale. Je ne remarque aucun problème dans cet avertissement, mais je me demandais si les deux versions devraient être synchronisées? De plus, est-il nécessaire d'avoir une version locale si vous avez une version globale?

L'avertissement:

Votre version CLI Angular globale (1.1.1) est supérieure à votre version locale (1.0.6). La version CLI angulaire locale est utilisée.

Riches
la source
43
Quelqu'un peut-il dire pourquoi nous avons besoin à la fois du local et du mondial?
Rap

Réponses:

465

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 servesur 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 npmcommande 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 newdans la structure de dossiers d'une application CLI existante, vous obtenez cette belle erreur:

Vous ne pouvez pas utiliser la newcommande dans un projet CLI angulaire.

D' autres commandes qui peuvent être exécutées à partir de la installation globale sont ng help, ng get/setavec l' --globaloption ng version, ng docet 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 ngcommandes n'ont de sens qu'avec la version locale, comme lint, buildet 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.

R. Richards
la source
il n'y a aucun moyen au lieu de mettre à jour le cli, par exemple, je veux exécuter l'installation de modules avec ma version cli existante. ou il n'y a aucun moyen de forcer lors de l'exécution de la commande à utiliser le cli local pas le global ??
Mohammed Yassine CHABLI le
3
La version locale de l'interface CLI est utilisée par défaut lors de l'exécution de commandes dans un répertoire de projet CLI. Cela en dit autant dans l'avertissement.
R. Richards
mais je ne sais pas pourquoi cette solution ne fonctionne pas pour moi. et si je mentionne dans mon package.json la valeur de mon angular-cli = "^ 1.0.6". ce travail, mais toujours pas comprendre ce qui se passe?
Mohammed Yassine CHABLI
1
npm uninstall -g @ angular / cli, npm cache clear --force, npm install @ angular / cli
Hesham Yassin
1
@Doug C'est exact. Vous recevrez un avertissement lors de l'exécution de ces commandes pour un projet avec une version inférieure de la CLI, mais vous pouvez l'ignorer. Tout l'avertissement indique que les versions sont différentes et que la CLI locale sera utilisée.
R. Richards
153

C'est ainsi que j'ai résolu le problème.

Installer le dernier package CLI angulaire localement

Copiez et exécutez ces commandes

ng --version
npm install --save-dev @angular/cli@latest
ng --version
BehrouzMoslem
la source
1
Je voudrais ajouter que l' étape 1.5 (si vous voulez) est la suivante : rm node_modules/.bin/ng. Fonctionne parfaitement.
bretonics
42

Cela fonctionne pour moi: il mettra à jour la version locale vers la dernière

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

pour vérifier la version

  ng --version
hoogw
la source
J'ai converti cela en une commande batch Windoze ancienne école: CALL npm uninstall --save-dev @ angular / cli CALL npm install --save-dev @ angular / cli @ latest CALL npm install CALL ng --version
Lee H
1
A fait vos pas. Testé ng serve --openet obtenu "Cette version de CLI n'est compatible qu'avec Angular version 5.0.0 ou supérieure. Veuillez consulter le lien ci-dessous pour trouver des instructions sur la mise à jour d'Angular. Angular-update-guide.firebaseapp.com "
Aggie Jon du 87
17
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest

Puis dans votre package de projet local:

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

Était en dessous de l'erreur Erreur: Fin inattendue de l'entrée JSON Fin inattendue de l'entrée JSON Les étapes ci-dessus ont été aidées par ce post Impossible de mettre à jour angulaire vers la version 6

Saurabh
la source
1
npm install --save-dev @ angular-devkit / build-angular - a aidé ng update @ angular / cli -> a créé angular.json et d'autres mises à jour.
MPV
15
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest

Votre configuration existante peut être mise à jour automatiquement en exécutant la commande suivante:

ng update @angular/cli

ou:

npm install
Montasir Mirghani
la source
8

Dans mon cas, je viens d'utiliser cette commande dans le projet:

ng update @angular/cli
Akostha
la source
4

Exécutez la commande suivante: npm install --save-dev @angular/cli@latest

Après avoir exécuté la commande ci-dessus, la console peut afficher le message ci-dessous

Le format de configuration de la CLI angulaire a été modifié et votre configuration existante peut être mise à jour automatiquement en exécutant la commande suivante: ng update @ angular / cli

Tahir77667
la source
4

Je ne parle pas couramment l'anglais

mais si je comprends le problème, est-ce que localement dans le projet vous avez une version plus ancienne de CLI que globalement?

Et aimeriez-vous utiliser ce nouveau global au lieu du plus ancien local?

Si c'est le cas, une méthode très simple suffit pour s'exécuter dans le répertoire du projet npm link @angular/cli

plus dans le sujet sur la page: https://docs.npmjs.com/cli/link

CisSasGot
la source
3

Découvrez d'abord la version globale angular-cli en exécutant

ng --version

Le code ci-dessus montrera quelle version est la version globale et locale angular-cli.

Si vous voulez que le cli angulaire global et local soit le même, vous pouvez simplement le faire

npm install --save-dev @angular/[email protected]

où 1.7.4 est votre version globale angular-cli

Ensuite, si vous exécutez ng serve --openvotre code devrait s'exécuter.

vikas etagi
la source
2

Vous avez juste besoin de mettre à jour AngularCli

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

la source
0

Deux façons de résoudre ce problème de version CLI angulaire globale et locale.
1. Conservez une version angular-cli spécifique pour les deux environnements.
2. Passez à la dernière version angular-cli pour les deux environnements.

1. Version angulaire-cli spécifique

Tout d'abord, découvrez quelle version angulaire vous souhaitez conserver dans l'environnement global et local.

ng --version

par exemple: ici nous gardons la version 8.3.27 de la CLI angulaire locale

Donc, nous devons également changer la version globale sur 8.3.27. utilisez cmd>

npm install --save-dev @angular/[email protected] -g

ici, drapeau '-g' pour une version globale angulaire-cli.

2. Passez à la dernière version angulaire pour les deux environnements CLI.

npm install --save-dev @angular/cli@latest -g  
npm install --save-dev @angular/cli@latest 
SURENDRANATH SONAWANE
la source
-1

npm install --save-dev @ angular-devkit / build-angular - a aidé ng update @ angular / cli -> a créé angular.json et d'autres mises à jour.

Collecte des dépendances installées ... 58 dépendances trouvées.

 ** 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/[email protected] requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.
MPV
la source
-1

Mettre à jour la CLI angulaire pour un espace de travail (local)

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

Remarque: assurez-vous d'installer la version globale à l'aide de la commande avec «-g» si elle est installée correctement.

npm install -g @angular/cli@latest

Exécutez la commande Update pour obtenir une liste de toutes les dépendances à mettre à niveau

ng update

Ensuite, exécutez la commande de mise à jour comme ci-dessous pour chaque package de noyau angulaire individuel

ng update @angular/cli @angular/core

Cependant, j'ai dû ajouter la commande de drapeaux «–force» et «–allow-dirty» en plus pour résoudre tous les autres problèmes en attente.

ng update @angular/cli @angular/core --allow-dirty --force
MOHAMMAD SIKANDAR
la source
-1

cela devrait résoudre le problème:

ng update @angular/cli @angular/core
user5919789
la source
-1

Faites juste ces choses

npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force
poussoir Mahmud
la source
1
Comme cette question a près de 3 ans et contient 14 réponses existantes, votre réponse serait beaucoup plus utile si vous expliquiez pourquoi votre réponse a une valeur qui n'était pas couverte par toutes les réponses existantes.
David Buck
-2

Supprimez l'angulaire actuel et installez la version spécifique.

  1. Vérifiez la version

    ng --version

  2. si non requis, Désinstaller la version

    désinstaller npm -g @ angular / cli

  3. si npm vesrion <5.x

    npm cache clean

  4. Vérifiez le cache

    vérification du cache npm

  5. Installer une version spécifique

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

Amit Kumar
la source