Como o Angular 6 está aqui, quero atualizar ou mover meu aplicativo cliente do Angular 5 para o Angular 6, mas não estou recebendo nenhum tutorial ou qualquer coisa que possa me orientar.
De acordo com mim, só preciso executar uma nova CLI Angular e, em seguida, mover minha fonte anterior para um novo projeto. Eu li que o Angular 6 está usando um novo renderizador chamado Ivy. Terei que mudar meu projeto de acordo com Ivy?
angular
migration
upgrade
angular-ivy
Abhishek Chokra
fonte
fonte
Respostas:
Atualize do Angular v6 para o Angular v7
A versão 7 do Angular foi lançada no link do blog oficial do Angular . Visite o guia oficial de atualização angular https://update.angular.io para obter informações detalhadas. Essas etapas funcionarão para aplicativos angulares básicos 6 usando Angular Material.
Atualize de Angular v5 para Angular v6
A versão 6 do Angular foi lançada no link do blog oficial do Angular . Mencionei as etapas gerais de atualização abaixo, mas antes e depois da atualização você precisa fazer alterações em seu código para torná-lo viável na v6. Para obter informações detalhadas, visite o site oficial https://update.angular.io .
Etapas de atualização (em grande parte retiradas do Guia de atualização Angular oficial para um aplicativo Angular básico usando Material Angular):
Certifique-se de que a versão do NodeJS é 8.9+, caso não atualize.
Atualize o Angular cli global e localmente e migre a configuração antiga .angular-cli.json para o novo formato angular.json executando o seguinte:
Atualize todos os seus pacotes de estrutura Angular para v6 e a versão correta de RxJS e TypeScript executando o seguinte:
Atualize o Angular Material para a versão mais recente executando o seguinte:
RxJS v6 tem grandes mudanças em relação à v5, v6 traz o pacote de compatibilidade com versões anteriores rxjs-compat que manterá seus aplicativos funcionando, mas você deve refatorar o código TypeScript para que ele não dependa de rxjs-compat. Para refatorar o código TypeScript, execute o seguinte:
Nota: Uma vez que todas as suas dependências tenham sido atualizadas para RxJS 6, remova rxjs-compat, pois ele aumenta o tamanho do pacote. consulte este Guia de atualização do RxJS para obter mais informações.
Feito correr
ng serve
para verificar isso.Se você receber erros na compilação, consulte https://update.angular.io para informações detalhadas.
Atualize do Angular v5 para o Angular 6.0.0-rc.5
Atualize rxjs para 6.0.0-beta.0, consulte este Guia de atualização RxJS para obter mais informações. RxJS v6 tem mudanças significativas, portanto, primeiro torne seu código compatível com a versão mais recente do RxJS.
Atualize a versão do NodeJS para 8.9+ (isso é exigido pela versão do angular cli 6)
Atualize o pacote global Angular cli para a próxima versão.
se a versão npm for <5, use
npm cache clean
Altere as versões dos pacotes angulares no arquivo package.json para
^6.0.0-rc.5
Em seguida, atualize o pacote local Angular cli para a próxima versão e instale os pacotes mencionados acima.
O formato de configuração do Angular CLI foi alterado da versão angular cli 6.0.0-rc.2 e sua configuração existente pode ser atualizada automaticamente executando o seguinte comando. Ele removerá o arquivo de configuração antigo .angular-cli.json e gravará o novo arquivo angular.json .
ng update @angular/cli --migrate-only --from=1.7.4
Nota: - Se você receber o seguinte erro "O compilador angular requer TypeScript> = 2.7.2 e <2.8.0, mas 2.8.3 foi encontrado". execute o seguinte comando:
fonte
bash: rxjs-5-to-6-migrate: command not found
. Alguma ideia?ng update @angular/core
na minha pasta de projeto iônico, recebo um erroInvalid range: "*"
"@angular-devkit/build-angular"
de ... Isso foi corrigido pornpm install @angular-devkit/build-angular --save-dev
. Outros, que eu tinha que atualizar as bibliotecas que estavam usando anterior rxjs-compat, comong update @ngx-translate/core
,ng update @ng-bootstrap/ng-bootstrap
porque alguns deles não foi devidamente atualizado.O Angular 6 acaba de ser lançado.
https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
Aqui está o que funcionou para um dos meus projetos menores
Você pode precisar atualizar seus scripts de execução em package.json Por exemplo. se você usar sinalizadores como "app" e "ambiente", eles foram atualizados para "projeto" e "configuração", respectivamente.
Consulte https://update.angular.io/ para obter um guia mais detalhado.
fonte
Basta usar o guia de atualização oficial, que dirá o que você precisa fazer para atender às suas necessidades específicas:
https://update.angular.io/
fonte
Verifique os detalhes da atualização passo a passo do Angular 5 para o Angular 6. Eles fornecem detalhes sobre os problemas que você encontra durante a atualização e como resolvê-los.
Alteração do nome dos operadores:
Todos os operadores mudaram para rxjs / Operadores
Métodos de criação observáveis são movidos para rxjs
Estás pronto. Bem-vindo ao Angular 6 :) Verifique minha postagem do blog aqui sobre como atualizar
fonte
Tive que executar novamente o ng update @ angular / cli para que angular-cli.json fosse alterado para angular.json
fonte
Por favor, execute os comentários abaixo para atualizar para Angular 6 a partir de Angular 5
fonte
Guia completo
----------------- Com angular-cli --------------------------
1. Atualize a CLI global e localmente
Usando NPM (certifique-se de ter a versão do nó 8+)
npm uninstall -g @angular/cli npm cache clean npm install -g @angular/cli@latest npm i @angular/cli --save
Usando Yarn
yarn remove @angular/cli yarn global add @angular/cli yarn add @angular/cli
2. Atualizar dependências
Angular 6 agora depende do TypeScript 2.7 e RxJS 6
Normalmente, isso significaria que você tem que atualizar seu código em todos os lugares onde as importações e operadores RxJS são usados, mas felizmente há um pacote que cuida da maior parte do trabalho pesado:
Então você pode executar rxjs-5-to-6-migrate
finalmente remova o rxjs-compat
Consulte este link https://alligator.io/angular/angular-6/
------------------- Sem angular-cli -------------------------
Portanto, você deve atualizar seu
package.json
arquivo manualmente .Então corra
fonte
bash: rxjs-5-to-6-migrate: command not found
quando tento executar o comando rxjs-5-to-6-migrate. Alguma ideia?Como Vinay Kumar apontou que ele não atualizará o Angular CLI globalmente instalado. Para atualizá-lo globalmente, basta usar os seguintes comandos:
Observe se você deseja atualizar o projeto existente, você deve modificar o projeto existente, você deve alterar o package.json dentro do seu projeto.
Não há mudanças significativas no Angular em si, mas elas estão no RxJS, então não se esqueça de usar a biblioteca rxjs-compat para trabalhar com código legado.
Escrevi um bom artigo sobre instalação / atualização do Angular CLI http://bmnteam.com/angular-cli-installation/
fonte
simplesmente execute o seguinte comando:
ng update
nota: isso não será atualizado globalmente.
fonte
É assim que eu faço funcionar.
Meu ambiente:
Angular CLI Global: 6.0.0, Local: 1.7.4, Angular: 5.2, Typescript 2.5.3
ng update //update Angular Package core/common/complier... to 6.0.0
ng update @angular/cli //change angular-cli.json to angular.json
opcional se você tiver material angular 5.4.2, ngx-translate 9.1.1, ng-bootstrap / ng-bootstrap 1.1.1:
ng update @angular/material //upgrade to 6.0.1
npm install @ngx-translate/[email protected] --save //upgrade ngX translate to 10.0.1 for Angular 6
5
npm install --save @ng-bootstrap/[email protected] //for ng-bootstrap
Se você usar Observable e obtiver o erro:
ERROR in node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'. node_modules/rxjs/observable/of.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/observable/of'.
Mudança:
import { Observable } from "rxjs/Observable"; import { of } from 'rxjs/observable/of';
Para
import { Observable, of } from "rxjs";
Problema de CLI angular: https://github.com/angular/angular-cli/issues/10621
fonte
Existem algumas etapas para atualizar 2/4/5 para Angular 6.
Para corrigir o problema relacionado a "angular.json": -
Loja MIGRATION
https://github.com/ngrx/platform/blob/master/MIGRATION.md#ngrxstore
RXJS MIGRATION
https://www.academind.com/learn/javascript/rxjs-6-what-changed/
Espero que isso ajude você :)
fonte