Como Angular 6 está aquí, quiero actualizar o mover mi aplicación cliente angular 5 a angular 6, pero no recibo ningún tutorial ni nada que pueda guiarme.
Según yo, solo necesito ejecutar una nueva CLI de Angular y luego tengo que mover mi fuente anterior a un nuevo proyecto. Leí que Angular 6 está usando un nuevo renderizador llamado Ivy. ¿Tendré que cambiar mi proyecto según Ivy?
angular
migration
upgrade
angular-ivy
Abhishek Chokra
fuente
fuente
Respuestas:
Actualizar de Angular v6 a Angular v7
Se ha lanzado la versión 7 de Angular . Enlace oficial del blog de Angular . Visite la guía oficial de actualización angular https://update.angular.io para obtener información detallada. Estos pasos funcionarán para aplicaciones básicas de angular 6 que utilicen Angular Material.
Actualizar de Angular v5 a Angular v6
Se ha lanzado la versión 6 de Angular Enlace oficial del blog de Angular . He mencionado los pasos generales de actualización a continuación, pero antes y después de la actualización debe realizar cambios en su código para que funcione en v6, para obtener información detallada, visite el sitio web oficial https://update.angular.io .
Pasos de actualización (en gran parte tomados de la Guía oficial de actualización de Angular para una aplicación angular básica que usa Material angular):
Asegúrese de que la versión de NodeJS sea 8.9+ si no la actualiza.
Actualice Angular cli global y localmente, y migre la configuración anterior .angular-cli.json al nuevo formato angular.json ejecutando lo siguiente:
Actualice todos sus paquetes de marco Angular a v6 y la versión correcta de RxJS y TypeScript ejecutando lo siguiente:
Actualice Angular Material a la última versión ejecutando lo siguiente:
RxJS v6 tiene cambios importantes desde v5, v6 trae el paquete de compatibilidad con versiones anteriores rxjs-compat que mantendrá sus aplicaciones en funcionamiento, pero debe refactorizar el código TypeScript para que no dependa de rxjs-compat. Para refactorizar el código TypeScript, ejecute lo siguiente:
Nota: Una vez que todas sus dependencias se hayan actualizado a RxJS 6, elimine rxjs- compat ya que aumenta el tamaño del paquete. Consulte esta Guía de actualización de RxJS para obtener más información.
Listo, ejecuta
ng serve
para comprobarlo.Si obtiene errores en la compilación, consulte https://update.angular.io para obtener información detallada.
Actualizar de Angular v5 a Angular 6.0.0-rc.5
Actualice rxjs a 6.0.0-beta.0, consulte esta Guía de actualización de RxJS para obtener más información. RxJS v6 tiene cambios importantes, por lo tanto, primero haga que su código sea compatible con la última versión de RxJS.
Actualice la versión NodeJS a 8.9+ (esto es requerido por la versión angular cli 6)
Actualice el paquete global de Angular cli a la próxima versión.
si la versión npm es <5, entonces use
npm cache clean
Cambie las versiones de los paquetes angulares en el archivo package.json a
^6.0.0-rc.5
A continuación, actualice el paquete local de Angular cli a la siguiente versión e instale los paquetes mencionados anteriormente.
El formato de configuración de Angular CLI se ha cambiado de la versión angular cli 6.0.0-rc.2, y su configuración existente se puede actualizar automáticamente ejecutando el siguiente comando. Eliminará el archivo de configuración antiguo .angular-cli.json y escribirá un nuevo archivo angular.json .
ng update @angular/cli --migrate-only --from=1.7.4
Nota: - Si obtiene el siguiente error "El compilador angular requiere TypeScript> = 2.7.2 y <2.8.0 pero se encontró 2.8.3 en su lugar". ejecutar el siguiente comando:
fuente
bash: rxjs-5-to-6-migrate: command not found
. ¿Alguna idea?ng update @angular/core
mi carpeta de proyecto iónico,Invalid range: "*"
"@angular-devkit/build-angular"
de ... Así que lo solucionónpm install @angular-devkit/build-angular --save-dev
. Aparte de eso tuve que actualizar las bibliotecas que utilizaban anterior rxjs-compat, comong update @ngx-translate/core
,ng update @ng-bootstrap/ng-bootstrap
porque algunos de ellos no se actualizaba correctamente.Angular 6 acaba de ser lanzado.
https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
Esto es lo que funcionó para uno de mis proyectos más pequeños.
Es posible que deba actualizar sus scripts de ejecución en package.json. Por ejemplo. si usa indicadores como "aplicación" y "entorno" Estos se han actualizado a "proyecto" y "configuración" respectivamente.
Consulte https://update.angular.io/ para obtener una guía más detallada.
fuente
Simplemente use la guía de actualización oficial que le dirá lo que debe hacer para sus propias necesidades particulares:
https://update.angular.io/
fuente
Consulte los detalles de la actualización paso a paso de Angular 5 a Angular 6. Estos proporcionan detalles sobre los problemas que encuentra durante la actualización y cómo resolverlos.
Cambio de nombre de los operadores:
Todos los operadores se movieron a rxjs / operator
Los métodos de creación observables se mueven a rxjs
Estas listo. Bienvenido a Angular 6 :) Consulte la publicación de mi blog aquí sobre cómo actualizar
fuente
Tuve que volver a ejecutar ng update @ angular / cli para que angular-cli.json se cambiara a angular.json
fuente
Ejecute los siguientes comentarios para actualizar a Angular 6 desde Angular 5
fuente
Guía completa
----------------- Con angular-cli --------------------------
1. Actualice la CLI a nivel mundial y local
Usando NPM (asegúrese de tener la versión de nodo 8+)
npm uninstall -g @angular/cli npm cache clean npm install -g @angular/cli@latest npm i @angular/cli --save
Usando hilo
yarn remove @angular/cli yarn global add @angular/cli yarn add @angular/cli
2.Actualizar dependencias
Angular 6 ahora depende de TypeScript 2.7 y RxJS 6
Normalmente, eso significaría que tiene que actualizar su código en todos los lugares donde se utilizan las importaciones y los operadores de RxJS, pero afortunadamente hay un paquete que se encarga de la mayor parte del trabajo pesado:
Entonces puede ejecutar rxjs-5-to-6-migrate
finalmente eliminar rxjs-compat
Consulte este enlace https://alligator.io/angular/angular-6/
------------------- Sin angular-cli -------------------------
Por lo tanto, debe actualizar manualmente su
package.json
archivo.Entonces corre
fuente
bash: rxjs-5-to-6-migrate: command not found
cuando intento ejecutar el comando rxjs-5-to-6-migrate. ¿Alguna idea?Como señaló Vinay Kumar, no actualizará la CLI angular instalada globalmente. Para actualizarlo globalmente, solo use los siguientes comandos:
Tenga en cuenta que si desea actualizar un proyecto existente, debe modificar el proyecto existente, debe cambiar package.json dentro de su proyecto.
No hay cambios importantes en Angular, pero están en RxJS, así que no olvide usar la biblioteca rxjs-compat para trabajar con código heredado.
Escribí un buen artículo sobre la instalación / actualización de Angular CLI http://bmnteam.com/angular-cli-installation/
fuente
simplemente ejecute el siguiente comando:
ng update
nota: esto no se actualizará globalmente.
fuente
Así es como lo hago funcionar.
Mi entorno:
Angular CLI Global: 6.0.0, Local: 1.7.4, Angular: 5.2, Mecanografiado 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 si tiene angular-material 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
Si usa Observable y obtiene el error:
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'.
Cambio:
import { Observable } from "rxjs/Observable"; import { of } from 'rxjs/observable/of';
A
import { Observable, of } from "rxjs";
Problema de CLI angular: https://github.com/angular/angular-cli/issues/10621
fuente
Hay algunos pasos para actualizar 2/4/5 a Angular 6.
Para solucionar el problema relacionado con "angular.json": -
Tienda MIGRATION
https://github.com/ngrx/platform/blob/master/MIGRATION.md#ngrxstore
MIGRACIÓN RXJS
https://www.academind.com/learn/javascript/rxjs-6-what-changed/
Espero que esto te ayude :)
fuente