Lors de l'exécution de ng serve
, je reçois cet avertissement concernant le fait que ma version de l'interface de ligne de commande globale est supérieure à ma version locale. Je ne remarque aucun problème dans cet avertissement, mais je me demandais si les deux versions devaient être synchronisées? Aussi, est-il nécessaire d'avoir une version locale si vous avez une version globale?
L'avertissement:
La version globale de votre Angular CLI (1.1.1) est supérieure à votre version locale (1.0.6). La version locale de la CLI Angular est utilisée.
Pour répondre à l'une des questions, il est nécessaire de disposer d'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 dans un projet CLI Angular pour pouvoir 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 commande npm
pour mettre à jour la CLI localement et évitez l’avertissement que vous obtenez.
Autre question: il semble qu'ils ne soient pas doivent être synchronisés, mais il est probablement préférable de les éviter pour é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 commande _ng new <app-name>
_ est exécutée à l'aide de l'installation globale de la CLI. En fait, si vous essayez d'exécuter _ng new
_ alors que vous vous trouvez dans la structure de dossiers d'une application CLI existante, vous obtenez cette jolie erreur:
Vous ne pouvez pas utiliser la commande
new
dans un projet CLI Angular.
Les autres commandes pouvant être exécutées à partir de l'installation globale sont _ng help
_, _ng get/set
_ avec l'option _--global
_, _ng version
_, _ng doc
_ et ng completion
.
L'installation locale de la CLI est utilisée après la construction d'une application. Ainsi, lorsque de nouvelles versions de la CLI sont disponibles, vous pouvez mettre à jour votre installation globale sans affecter l'installation locale. C'est bon pour la stabilité d'un projet. La plupart des commandes ng
n'ont de sens qu'avec la version locale, comme lint
, build
et serve
, etc.
Selon la CLI GitHub readme , pour mettre à jour la CLI, vous devez mettre à jour les packages global et local. Cependant, j'ai utilisé l'interface de ligne de commande où la version globale et la version locale varient sans problème jusqu'à présent. Si jamais je rencontre une erreur liée au fait que les versions de la CLI globale et locale ne sont pas synchronisées, je la posterai ici.
Cela fonctionne pour moi: il mettra à jour la version locale à 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
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
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
Obtention de l'erreur ci-dessous Erreur: Fin inattendue de l'entrée JSON Fin inattendue de l'entrée JSON Les étapes ci-dessus vous ont été utiles à partir de ce message Impossible de mettre à jour angular vers la version 6
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 Angular a été modifié et votre configuration existante peut être mise à jour automatiquement en exécutant la commande suivante: ng update @ angular/cli
Dans mon cas, je viens d'utiliser cette commande dans le projet:
ng update @angular/cli
Je ne parle pas anglais couramment
mais si je comprends le problème, est-ce que localement dans le projet vous avez une version de CLI plus ancienne que globalement?
Et aimeriez-vous utiliser cette nouvelle version globale au lieu de la version locale la plus ancienne?
Si c'est le cas, une méthode très simple suffit à 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
Commencez par connaître la version globale de angular-cli en lançant
ng --version
Le code ci-dessus montrera quelle version est la version globale et locale angular-cli.
Si vous voulez que le angular cli global et local soit le même, vous pouvez simplement faire
npm install --save-dev @angular/[email protected]
où 1.7.4 est votre version globale d'angular-cli
Ensuite, si vous exécutez ng serve --open
, votre code doit être exécuté.
npm install --save-dev @ angular-devkit/build-angular - a aidé ng à mettre à jour @ angular/cli -> a créé angular.json et d’autres mises à jour.
Collecte des dépendances installées ... Trouvé 58 dépendances.
** 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.