Versione CLI angolare globale superiore alla versione locale


354

Durante l'esecuzione ng servericevo questo avviso sulla versione della CLI globale che è maggiore della mia versione locale. Non noto alcun problema da questo avviso, ma mi chiedevo se le due versioni dovessero essere sincronizzate? Inoltre, è necessario disporre di una versione locale se si dispone di una versione globale?

L'avviso:

La versione della CLI angolare globale (1.1.1) è maggiore della versione locale (1.0.6). Viene utilizzata la versione CLI angolare locale.


43
Qualcuno può rispondere perché abbiamo bisogno sia locale che globale?
Rap

Risposte:


465

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.


non è possibile invece aggiornare il cli, ad esempio voglio eseguire l'installazione dei moduli con la mia versione cli esistente. o non c'è modo di forzare quando si esegue il comando per utilizzare il cli locale non quello globale ??
Mohammed Yassine CHABLI,

3
La versione locale della CLI viene utilizzata per impostazione predefinita quando si eseguono comandi in una directory di progetto della CLI. Lo dice anche nell'avvertimento.
R. Richards,

ma non so perché questa soluzione non funzioni per me. e se menzionassi nel mio package.json come valore del mio angular-cli = "^ 1.0.6". che lavoro ma ancora non sottolineando cosa succede?
Mohammed Yassine CHABLI,

1
npm uninstall -g @ angular / cli, npm cache clear --force, npm install @ angular / cli
Hesham Yassin

1
@Doug È corretto. Riceverai un avviso quando esegui quei comandi per un progetto con una versione inferiore della CLI, ma puoi ignorarlo. Tutti gli avvisi indicano che le versioni sono diverse e verrà utilizzata la CLI locale.
R. Richards,

153

Ecco come ho risolto il problema.

Installa il pacchetto della CLI angolare più recente a livello locale

Copia ed esegui questi comandi

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

1
Vorrei aggiungere che passo 1.5 (se si vuole) è: rm node_modules/.bin/ng. Ha funzionato perfettamente.
bretonica,

42

Questo funziona per me: aggiornerà la versione locale alla più recente

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

per verificare la versione

  ng --version

L'ho convertito in un comando batch di Windoze vecchio stile: CHIAMATA npm disinstallazione --save-dev @ angolare / cli CHIAMATA npm installazione --save-dev @ angolare / cli @ ultima CHIAMATA npm installazione CHIAMATA ng --versione
Lee H

1
Hai fatto i tuoi passi. Provato ng serve --opene ottenuto "Questa versione dell'interfaccia della riga di comando è compatibile solo con Angular versione 5.0.0 o successiva. Visitare il collegamento seguente per trovare le istruzioni su come aggiornare Angular. Angular-update-guide.firebaseapp.com "
Aggie Jon dell'87

17
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest

Quindi nel pacchetto del progetto locale:

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

Errore sotto l'errore Errore: fine imprevista dell'input JSON Fine imprevista dell'input JSON I passaggi sopra indicati sono stati aiutati da questo post Impossibile aggiornare angolare alla versione 6


1
npm install --save-dev @ angular-devkit / build-angular - ha aiutato ng update @ angular / cli -> ha creato angular.json e altri aggiornamenti.
MPV,

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

La configurazione esistente può essere aggiornata automaticamente eseguendo il comando seguente:

ng update @angular/cli

o:

npm install

8

Nel mio caso ho usato questo comando nel progetto:

ng update @angular/cli

4

Esegui il comando seguente: npm install --save-dev @angular/cli@latest

Dopo aver eseguito il comando precedente, la console potrebbe visualizzare il messaggio seguente

Il formato di configurazione della CLI angolare è stato modificato e la configurazione esistente può essere aggiornata automaticamente eseguendo il comando seguente: ng update @ angular / cli


4

Non parlo fluentemente inglese

ma se capisco il problema, è che localmente nel progetto hai una versione precedente della CLI che a livello globale?

E ti piacerebbe usare questo più nuovo globale invece di quello locale più vecchio?

In tal caso, è sufficiente un metodo molto semplice per essere eseguito nella directory del progetto npm link @angular/cli

più nell'argomento nella pagina: https://docs.npmjs.com/cli/link


2

Per prima cosa scopri la versione globale di angular-cli eseguendo

ng --version

Il codice sopra mostrerà quale versione è la versione angolare-globale e locale.

Se vuoi che il cli angolare globale e locale sia lo stesso, puoi semplicemente farlo

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

dove 1.7.4 è la versione globale di angular-cli

Quindi se esegui il ng serve --opentuo codice dovrebbe essere eseguito.


2

Hai solo bisogno di aggiornare AngularCli

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

0

Aggiorna l'interfaccia della riga di comando angolare per un'area di lavoro (locale)

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

Nota: assicurati di installare la versione globale usando il comando con '-g' se è installato correttamente.

npm install -g @angular/cli@latest

Eseguire il comando Aggiorna per ottenere un elenco di tutte le dipendenze necessarie per l'aggiornamento

ng update

Avanti Esegui il comando di aggiornamento come di seguito per ogni singolo pacchetto core angolare

ng update @angular/cli @angular/core

Tuttavia, ho dovuto aggiungere il comando flag '–force' e '–allow-dirty' in aggiunta per risolvere tutti gli altri problemi in sospeso.

ng update @angular/cli @angular/core --allow-dirty --force

0

questo dovrebbe risolvere il problema:

ng update @angular/cli @angular/core

0

Fai solo queste cose

npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force

1
Poiché questa domanda ha quasi 3 anni e ha 14 risposte esistenti, la tua risposta sarebbe molto più preziosa se spiegassi perché la tua risposta ha un valore che non era coperto da tutte le risposte esistenti.
David Buck,

-1

npm install --save-dev @ angular-devkit / build-angular - ha aiutato ng update @ angular / cli -> ha creato angular.json e altri aggiornamenti.

Raccolta dipendenze installate ... Trovate 58 dipendenze.

 ** 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/core@5.2.9 requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.

-1

Rimuovere l'attuale angolare e installare la versione specifica.

  1. Controlla la versione

    ng --version

  2. se non richiesto, disinstallare la versione

    npm uninstall -g @ angular / cli

  3. se npm vesrion <5.x

    npm cache clean

  4. Verifica la cache

    verifica cache npm

  5. Installa versione specifica

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.