Versão da CLI Angular Global maior que a versão local

354

Ao executar ng serve, recebo este aviso sobre minha versão da CLI global ser maior que a minha versão local. Não percebo nenhum problema com este aviso, mas queria saber se as duas versões devem estar sincronizadas? Além disso, é necessário ter uma versão local se você tiver uma versão global?

O aviso:

Sua versão global da CLI Angular (1.1.1) é maior que a versão local (1.0.6). A versão local da CLI Angular é usada.

Rico
fonte
43
Alguém pode responder por que precisamos local e globalmente?
Rap

Respostas:

465

Para responder a uma das perguntas, é necessário ter uma instalação global e local para que as ferramentas funcionem.

Se você tentar executar ng serveem um aplicativo sem a instalação local da CLI (somente instalação global), receberá o seguinte erro.

Você deve estar dentro de um projeto da CLI Angular para usar o comando serve.

Também imprimirá esta mensagem:

Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"

Execute esse npmcomando para atualizar a CLI localmente e evite o aviso que você está recebendo.

Outra pergunta: parece que eles não precisam estar sincronizados, mas provavelmente é melhor que eles sejam para evitar qualquer comportamento incomum com a ferramenta ou qualquer inconsistência com o código que a ferramenta gera.

Por que precisamos da instalação global e de uma instalação local?

A instalação global é necessária para iniciar um novo aplicativo. O ng new <app-name>comando é executado usando a instalação global da CLI. De fato, se você tentar executar ng newenquanto estiver dentro da estrutura de pastas de um aplicativo CLI existente, receberá este erro adorável:

Você não pode usar o newcomando dentro de um projeto da CLI angular.

Outros comandos que podem ser executados a partir da instalação global são ng help, ng get/setcom a --globalopção de, ng version, ng doc, e ng completion.

A instalação local da CLI é usada após a construção de um aplicativo. Dessa forma, quando novas versões da CLI estiverem disponíveis, você poderá atualizar sua instalação global e não afetar a instalação local. Isso é bom para a estabilidade de um projeto. A maioria dos ngcomandos só faz sentido com a versão local, como lint, builde serve, etc.

De acordo com o leia-me da CLI GitHub , para atualizar a CLI, você deve atualizar o pacote global e local. No entanto, usei a CLI em que a versão global e local varia sem problemas até o momento. Se algum dia eu encontrar um erro relacionado a ter as versões da CLI global e local fora de sincronia, postarei isso aqui.

R. Richards
fonte
não há como, em vez de atualizar o CLI, por exemplo, eu quero executar a instalação de módulos com a minha versão existente do CLI. ou não há como forçar ao executar o comando para usar o CLI local e não o global?
Mohammed Yassine CHABLI
3
A versão local da CLI é usada por padrão ao executar comandos em um diretório de projeto da CLI. Diz o mesmo no aviso.
R. Richards
mas não sei por que essa solução não está funcionando para mim. e se eu mencionar no meu package.json como valor do meu angular-cli = "^ 1.0.6". esse trabalho, mas ainda não entendendo o que acontece?
Mohammed Yassine CHABLI
11
desinstalar npm -g @ angular / cli, limpar o cache do npm --force, npm install @ angular / cli
Hesham Yassin
11
@ Doug Isso está correto. Você receberá um aviso ao executar esses comandos para um projeto com uma versão inferior da CLI, mas poderá ignorá-lo. Todo o aviso diz que as versões são diferentes e a CLI local será usada.
R. Richards
153

Foi assim que resolvi o problema.

Instale o pacote mais recente da Angular CLI localmente

Copie e execute esses comandos

ng --version
npm install --save-dev @angular/cli@latest
ng --version
BehrouzMoslem
fonte
11
Gostaria de acrescentar que passo 1.5 (se você) é: rm node_modules/.bin/ng. Funcionou perfeitamente.
Bretonics #
42

Isso funciona para mim: ele atualizará a versão local para as mais recentes

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

para verificar a versão

  ng --version
hoogw
fonte
Eu converti isso em um comando em lote Windoze do skool antigo: CALL npm uninstall --save-dev @ angular / cli CALL npm install --save-dev @ angular / cli @ latest CALL npm install CALL ng --version
Lee H
11
Seus passos. Tentei ng serve --opene obtive "Esta versão do CLI é compatível apenas com a versão Angular 5.0.0 ou superior. Visite o link abaixo para obter instruções sobre como atualizar a Angular. Angular-update-guide.firebaseapp.com "
Aggie Jon de 87
17
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest

Em seguida, no seu pacote de projeto 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

Estava ficando abaixo do erro Erro: Fim inesperado da entrada JSON Fim inesperado da entrada JSON As etapas acima ajudaram nesta publicação Não é possível atualizar o angular para a versão 6

Saurabh
fonte
11
O npm install --save-dev @ angular-devkit / build-angular - ajudou a atualizar o @ angular / cli -> criou o angular.json e outras atualizações.
MPV
15
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest

Sua configuração existente pode ser atualizada automaticamente executando o seguinte comando:

ng update @angular/cli

ou:

npm install
Montasir Mirghani
fonte
8

No meu caso, eu apenas usei este comando no projeto:

ng update @angular/cli
Akostha
fonte
4

Execute o seguinte comando: npm install --save-dev @angular/cli@latest

Após executar o comando acima, o console poderá exibir a mensagem abaixo

O formato de configuração da CLI angular foi alterado e sua configuração existente pode ser atualizada automaticamente executando o seguinte comando: ng update @ angular / cli

Tahir77667
fonte
4

Eu não sou fluente em inglês

mas se eu entendi o problema, é que localmente no projeto você tem uma versão mais antiga da CLI do que globalmente?

E você gostaria de usar este mais novo global em vez do mais antigo local?

Nesse caso, um método muito simples é suficiente para executar no diretório do projeto npm link @angular/cli

mais no assunto da página: https://docs.npmjs.com/cli/link

CisSasGot
fonte
2

Primeiro descubra a versão angular-cli global executando

ng --version

O código acima mostra qual versão são as versões angular-cli global e local.

Se você deseja que o CLI angular global e local seja o mesmo, basta fazer

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

onde 1.7.4 é sua versão angular-cli global

Então, se você executar, ng serve --openseu código deverá ser executado.

vikas etagi
fonte
2

Você só precisa atualizar o AngularCli

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

fonte
0

Atualizar CLI angular para um espaço de trabalho (local)

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

Nota: Certifique-se de instalar a versão global usando o comando com '-g', se estiver instalado corretamente.

npm install -g @angular/cli@latest

Execute o comando Update para obter uma lista de todas as dependências que precisam ser atualizadas

ng update

Próxima Execute o comando update, conforme abaixo, para cada pacote principal do Angular

ng update @angular/cli @angular/core

No entanto, tive que adicionar os comandos dos sinalizadores '–force' e '–allow-dirty' adicionalmente para corrigir todos os outros problemas pendentes.

ng update @angular/cli @angular/core --allow-dirty --force
MOHAMMAD SIKANDAR
fonte
0

isso deve resolver o problema:

ng update @angular/cli @angular/core
user5919789
fonte
0

Apenas faça essas coisas

npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force
triturador Mahmud
fonte
11
Como essa pergunta tem quase 3 anos e tem 14 respostas existentes, sua resposta seria muito mais valiosa se você explicasse por que sua resposta tem um valor que não foi coberto por todas as respostas existentes.
David Buck
-1

O npm install --save-dev @ angular-devkit / build-angular - ajudou a atualizar o @ angular / cli -> criou o angular.json e outras atualizações.

Coletando dependências instaladas ... Encontradas 58 dependências.

 ** 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
fonte
-1

Remova a angular atual e instale a versão específica.

  1. Verifique a versão

    ng --version

  2. se não for necessário, desinstale a versão

    desinstalação do npm -g @ angular / cli

  3. se npm vesrion <5.x

    cache de npm limpo

  4. Verifique o cache

    verificação de cache npm

  5. Instalar versão específica

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

Amit Kumar
fonte