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.


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.


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

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

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


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

8

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

ng update @angular/cli

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


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


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/cli@1.7.4

onde 1.7.4 é sua versão angular-cli global

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


2

Você só precisa atualizar o AngularCli

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

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

0

isso deve resolver o problema:

ng update @angular/cli @angular/core

0

Apenas faça essas coisas

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

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

-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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.