Comme Angular 6 est là, je souhaite mettre à niveau ou déplacer mon application client angular 5 vers angular 6, mais je ne reçois aucun tutoriel ou quoi que ce soit qui puisse me guider.
Selon moi, j'ai juste besoin d'exécuter une nouvelle CLI angulaire, puis de déplacer mon ancienne source vers un nouveau projet. J'ai lu que Angular 6 utilise un nouveau moteur de rendu appelé Ivy. Dois-je changer mon projet selon Ivy?
angular
migration
upgrade
angular-ivy
Abhishek Chokra
la source
la source
Réponses:
Mise à niveau d'Angular v6 vers Angular v7
La version 7 d'Angular a été publiée Lien officiel du blog Angular . Visitez le guide officiel de mise à jour angulaire https://update.angular.io pour des informations détaillées. Ces étapes fonctionneront pour les applications angulaires 6 de base utilisant le matériau angulaire.
Mise à niveau d'Angular v5 vers Angular v6
La version 6 d'Angular a été publiée Lien du blog officiel Angular . J'ai mentionné les étapes générales de mise à niveau ci-dessous, mais avant et après la mise à jour, vous devez apporter des modifications à votre code pour le rendre utilisable dans la v6, pour ces informations détaillées, visitez le site officiel https://update.angular.io .
Étapes de mise à niveau (largement tirées du guide officiel de mise à jour angulaire pour une application angulaire de base utilisant un matériau angulaire):
Assurez-vous que la version de NodeJS est 8.9+ sinon la mettre à jour.
Mettez à jour Angular cli globalement et localement, et migrez l'ancienne configuration .angular-cli.json vers le nouveau format angular.json en exécutant ce qui suit:
Mettez à jour tous vos packages de framework Angular vers la v6 et la version correcte de RxJS et TypeScript en exécutant ce qui suit:
Mettez à jour Angular Material vers la dernière version en exécutant ce qui suit:
RxJS v6 a des changements majeurs par rapport à la v5, la v6 apporte le package de rétrocompatibilité rxjs-compat qui maintiendra le fonctionnement de vos applications, mais vous devez refactoriser le code TypeScript afin qu'il ne dépende pas de rxjs-compat. Pour refactoriser le code TypeScript, exécutez ce qui suit:
Remarque: une fois que toutes vos dépendances ont été mises à jour vers RxJS 6, supprimez rxjs-compat car il augmente la taille du bundle. veuillez consulter ce guide de mise à niveau RxJS pour plus d'informations.
Terminé courir
ng serve
pour le vérifier.Si vous obtenez des erreurs dans la construction, reportez-vous à https://update.angular.io pour obtenir des informations détaillées.
Mise à niveau d'Angular v5 vers Angular 6.0.0-rc.5
Mettez à niveau rxjs vers la version 6.0.0-beta.0, veuillez consulter ce guide de mise à niveau RxJS pour plus d'informations. RxJS v6 a des changements de rupture, donc commencez par rendre votre code compatible avec la dernière version de RxJS.
Mettre à jour la version NodeJS vers 8.9+ (ceci est requis par la version angular cli 6)
Mettez à jour le package global Angular cli vers la prochaine version.
si la version de npm est <5 alors utilisez
npm cache clean
Remplacez les versions des packages angulaires dans le fichier package.json par
^6.0.0-rc.5
Prochaine mise à jour du package local Angular cli vers la version suivante et installez les packages mentionnés ci-dessus.
Le format de configuration Angular CLI a été modifié par rapport à la version angular cli 6.0.0-rc.2, et votre configuration existante peut être mise à jour automatiquement en exécutant la commande suivante. Il supprimera l'ancien fichier de configuration .angular-cli.json et écrira un nouveau fichier angular.json .
ng update @angular/cli --migrate-only --from=1.7.4
Remarque: - Si vous obtenez l'erreur suivante "Le compilateur angulaire requiert TypeScript> = 2.7.2 et <2.8.0 mais 2.8.3 a été trouvé à la place". exécuter la commande suivante:
la source
bash: rxjs-5-to-6-migrate: command not found
. Des pensées?ng update @angular/core
dans mon dossier de projet ionique, j'obtiens une erreurInvalid range: "*"
"@angular-devkit/build-angular"
de ... Donc, cela a été corrigé parnpm install @angular-devkit/build-angular --save-dev
. A part que je devais mettre à jour les bibliothèques qui utilisaient rxjs-compat précédente, commeng update @ngx-translate/core
,ng update @ng-bootstrap/ng-bootstrap
parce que peu d'entre eux n'a pas été correctement mis à jour.Angular 6 vient de sortir.
https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
Voici ce qui a fonctionné pour l'un de mes petits projets
Vous devrez peut-être mettre à jour vos scripts d'exécution dans package.json Par exemple. si vous utilisez des indicateurs comme "app" et "environment" Ceux-ci ont été mis à jour respectivement en "projet" et "configuration".
Reportez-vous à https://update.angular.io/ pour un guide plus détaillé.
la source
Utilisez simplement le guide de mise à niveau officiel qui vous dira ce que vous devez faire pour vos propres besoins particuliers:
https://update.angular.io/
la source
Vérifiez les détails de la mise à niveau étape par étape d'Angular 5 vers Angular 6. Ils fournissent des détails sur les problèmes que vous rencontrez lors de la mise à niveau et comment les résoudre.
Changement de nom des opérateurs:
Tous les opérateurs déplacés vers rxjs / operators
Les méthodes de création observables sont déplacées vers rxjs
Vous êtes prêt. Bienvenue dans Angular 6 :) Consultez mon article de blog ici sur la mise à niveau
la source
J'ai dû réexécuter ng update @ angular / cli pour que angular-cli.json soit changé en angular.json
la source
Veuillez exécuter les commentaires ci-dessous pour mettre à jour vers Angular 6 à partir d'Angular 5
la source
Guide complet
----------------- Avec angular-cli --------------------------
1. Mettez à jour la CLI globalement et localement
Utilisation de NPM (assurez-vous que vous disposez de la version 8+ du nœud)
npm uninstall -g @angular/cli npm cache clean npm install -g @angular/cli@latest npm i @angular/cli --save
Utiliser du fil
yarn remove @angular/cli yarn global add @angular/cli yarn add @angular/cli
2.Mettre à jour les dépendances
Angular 6 dépend désormais de TypeScript 2.7 et RxJS 6
Normalement, cela signifierait que vous devez mettre à jour votre code partout où les importations et les opérateurs RxJS sont utilisés, mais heureusement, il existe un package qui s'occupe de la plupart des tâches lourdes:
Ensuite, vous pouvez exécuter rxjs-5-to-6-migrate
enfin supprimer rxjs-compat
Reportez-vous à ce lien https://alligator.io/angular/angular-6/
------------------- Sans angular-cli -------------------------
Vous devez donc mettre à jour manuellement votre
package.json
fichier.Puis cours
la source
bash: rxjs-5-to-6-migrate: command not found
en essayant d'exécuter la commande rxjs-5 à 6-migrate. Des pensées?Comme l'a souligné Vinay Kumar, il ne mettra pas à jour la CLI angulaire installée globalement. Pour le mettre à jour globalement, utilisez simplement les commandes suivantes:
Notez que si vous souhaitez mettre à jour un projet existant, vous devez modifier le projet existant, vous devez modifier package.json dans votre projet.
Il n'y a pas de changements de rupture dans Angular lui-même mais ils sont dans RxJS, alors n'oubliez pas d'utiliser la bibliothèque rxjs-compat pour travailler avec le code hérité.
J'ai écrit un bon article sur l'installation / la mise à jour de la CLI angulaire http://bmnteam.com/angular-cli-installation/
la source
exécutez simplement la commande suivante:
ng update
Remarque: cela ne sera pas mis à jour globalement.
la source
Voilà comment je le fais fonctionner.
Mon environnement:
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
optionnel si vous avez 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 vous utilisez Observable et obtenez l'erreur:
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'.
Changement:
import { Observable } from "rxjs/Observable"; import { of } from 'rxjs/observable/of';
À
import { Observable, of } from "rxjs";
Problème de CLI angulaire: https://github.com/angular/angular-cli/issues/10621
la source
Il y a quelques étapes pour mettre à niveau 2/4/5 vers Angular 6.
Pour résoudre le problème lié à "angular.json": -
Store MIGRATION
https://github.com/ngrx/platform/blob/master/MIGRATION.md#ngrxstore
MIGRATION RXJS
https://www.academind.com/learn/javascript/rxjs-6-what-changed/
En espérant que cela vous aidera :)
la source