Comme Angular 6 est ici, je souhaite mettre à niveau ou déplacer mon application client angular 5 vers angular 6, mais je ne reçois aucun tutoriel ni quoi que ce soit qui peut me guider à travers.
Selon moi, il me suffit de lancer une nouvelle CLI Angular, puis de déplacer mon ancienne source vers un nouveau projet. J'ai lu le Angular 6 utilise un nouveau moteur de rendu appelé Ivy. Devrai-je changer de projet en fonction de Ivy?
La version 7 de Angular a été publiée lien de blog officiel Angular . Consultez le guide officiel de mise à jour angular https://update.angular.io pour obtenir des informations détaillées. Ces étapes fonctionneront pour les applications angular de base 6 utilisant le matériel Angular.
ng update @angular/cli
ng update @angular/core
ng update @angular/material
La version 6 de Angular a été publiée lien de 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 modifier votre code pour le rendre utilisable dans la v6. Pour obtenir des informations détaillées, visitez le site Web officiel https://update.angular.io .
Étapes de mise à niveau (en grande partie tirées du officiel Guide de mise à jour angulaire pour une application de base Angular utilisant du matériel Angular):
Assurez-vous que la version de NodeJS est la version 8.9+ si vous ne la mettez pas à jour.
Mettez à jour Angular cli globalement et localement et faites migrer l'ancienne configuration . Angular-cli.json vers la nouvelle angular.json en lançant ce qui suit:
npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli
Mettez à jour tous vos packages de framework Angular vers la v6 et la version correcte de RxJS et de TypeScript en exécutant ce qui suit:
ng update @angular/core
Mettez à jour Angular Material avec la dernière version en lançant:
ng update @angular/material
RxJS v6 comporte des modifications majeures par rapport à la v5, la v6 apportant une compatibilité ascendante avec le paquetage rxjs-compat qui gardera vos applications en état de fonctionner, mais vous devez refactoriser le code TypeScript pour qu’il ne dépende pas de rxjs-compat. Pour refactoriser le code TypeScript, exécutez la commande suivante:
npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json
Remarque: Une fois que toutes vos dépendances ont été mises à jour vers RxJS 6, supprimez rxjs-compat car il augmente la taille de l'ensemble. veuillez consulter ceci Guide de mise à niveau RxJS pour plus d'informations.
npm uninstall rxjs-compat
Terminé, exécutez ng serve
pour le vérifier.
Si vous rencontrez des erreurs dans la construction, reportez-vous à https://update.angular.io pour obtenir des informations détaillées.
Mettez à niveau rxjs vers la version 6.0.0-beta.0, veuillez consulter ceci Guide de mise à niveau RxJS pour plus d'informations. RxJS v6 a des changements radicaux, donc commencez par rendre votre code compatible avec la dernière version de RxJS.
Mettez à jour la version de NodeJS vers la version 8.9+ (cela est requis par la version angular cli 6)
Mettez à jour le package global Angular cli vers la prochaine version.
npm uninstall -g @angular/cli
npm cache verify
si la version de npm est <5, utilisez npm cache clean
npm install -g @angular/cli@next
Remplacez les versions des packages angular dans le fichier package.json par ^6.0.0-rc.5
"dependencies": {
"@angular/animations": "^6.0.0-rc.5",
"@angular/cdk": "^6.0.0-rc.12",
"@angular/common": "^6.0.0-rc.5",
"@angular/compiler": "^6.0.0-rc.5",
"@angular/core": "^6.0.0-rc.5",
"@angular/forms": "^6.0.0-rc.5",
"@angular/http": "^6.0.0-rc.5",
"@angular/material": "^6.0.0-rc.12",
"@angular/platform-browser": "^6.0.0-rc.5",
"@angular/platform-browser-dynamic": "^6.0.0-rc.5",
"@angular/router": "^6.0.0-rc.5",
"core-js": "^2.5.5",
"karma-jasmine": "^1.1.1",
"rxjs": "^6.0.0-uncanny-rc.7",
"rxjs-compat": "^6.0.0-uncanny-rc.7",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.5.0",
"@angular/cli": "^6.0.0-rc.5",
"@angular/compiler-cli": "^6.0.0-rc.5",
"@types/jasmine": "2.5.38",
"@types/node": "~8.9.4",
"codelyzer": "~4.1.0",
"jasmine-core": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.0.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^0.2.0",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"postcss-loader": "^2.1.4",
"protractor": "~5.1.0",
"ts-node": "~5.0.0",
"tslint": "~5.9.1",
"TypeScript": "^2.7.2"
}
Prochaine mise à jour du paquet local Angular cli vers la prochaine version et installation des paquetages susmentionnés.
rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows
Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@next
npm install
Le format de configuration de la CLI Angular a été remplacé par 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 angular.json fichier.
ng update @angular/cli --migrate-only --from=1.7.4
Remarque: - Si vous obtenez l'erreur suivante "Le compilateur Angular nécessite TypeScript> = 2.7.2 et <2.8.0 mais 2.8.3 a été trouvé à la place". lancer la commande suivante:
npm install [email protected]
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 plus petits projets
Vous devrez peut-être mettre à jour vos scripts d'exécution dans package.json. Si vous utilisez des indicateurs tels que "app" et "environment", ils ont été mis à jour pour "projet" et "configuration" respectivement.
Reportez-vous à https://update.angular.io/ pour obtenir un guide plus détaillé.
Utilisez simplement le guide de mise à niveau officiel qui vous indiquera ce que vous devez faire pour vos propres besoins:
Vérifiez les détails étape par étape de la mise à niveau de Angular 5 à Angular 6. Ces informations fournissent des informations détaillées sur les problèmes que vous rencontrez lors de la mise à niveau et sur la façon de les résoudre.
{
"rulesDirectory": [
"node_modules/rxjs-tslint"
],
"rules": {
"rxjs-collapse-imports": true,
"rxjs-pipeable-operators-only": true,
"rxjs-no-static-observable-methods": true,
"rxjs-proper-imports": true
}
}
Changement de nom d'opérateur:
do -> tap,
catch -> catchError,
switch -> switchAll,
finally -> finalize
Tous les opérateurs déplacés vers rxjs/opérateurs
import { map, filter, reduce } from 'rxjs/operators';
Les méthodes de création observables sont déplacées vers rxjs
import { Observable, Subject, of, from } from 'rxjs';
Vous êtes tous ensemble. Bienvenue sur Angular 6:) Consultez mon article de blog ici sur la mise à nivea
Je devais ré-exécuter ng update @ angular/cli pour que angular-cli.json soit changé en angular.json
Utilisation de NPM (assurez-vous de disposer du noeud version 8+)
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
ng update @angular/cli
ng update @angular/core
ng update @angular/material
ng update rxjs
Normalement, cela signifie que vous devez mettre à jour votre code partout où les importations RxJS et les opérateurs sont utilisés, mais heureusement, il existe un package qui prend en charge la plupart des tâches lourdes:
npm i -g rxjs-tslint
//or using yarn
yarn global add rxjs-tslint
Ensuite, vous pouvez exécuter rxjs-5-to-6-migrate
rxjs-5-to-6-migrate -p src/tsconfig.app.json
enfin supprimer rxjs-compat
npm uninstall rxjs-compat
// or using Yarn
yarn remove rxjs-compat
Reportez-vous à ce lien https://alligator.io/angular/angular-6/
Vous devez donc mettre à jour manuellement votre fichier package.json
.
Puis courir
npm update
npm install --save rxjs-compat
npm i -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json
Veuillez lancer les commentaires ci-dessous pour mettre à jour en Angular 6 à partir de Angular 5
Comme Vinay Kumar a fait remarquer qu'il ne mettra pas à jour l'installation globale installée Angular CLI. Pour le mettre à jour globalement, utilisez simplement les commandes suivantes:
npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@latest
Notez que si vous souhaitez mettre à jour un projet existant, vous devez le modifier, vous devez modifier package.json dans votre projet.
Il n'y a pas de changements décisifs dans Angular lui-même, mais ils sont dans RxJS. N'oubliez donc pas d'utiliser la bibliothèque rxjs-compat pour travailler avec du code hérité.
npm install --save rxjs-compat
J'ai écrit un bon article sur l'installation/la mise à jour Angular CLI http://bmnteam.com/angular-cli-installation/
lancez simplement la commande suivante:
ng update
remarque: cela ne se mettra pas à jour globalement.
Voici comment je le fais fonctionner.
Mon environnement:
CLI angulaire globale: 6.0.0, locale: 1.7.4, angulaire: 5.2, TypeScript 2.5.3
Remarque: pour activer
ng Update
, vous devez d'abord installer Angular CLI 6.0npm install -g @angular/cli or npm install @angular/cli
.
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 le matériau angulaire 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 l'interface de ligne de commande angulaire: https://github.com/angular/angular-cli/issues/10621
Il existe peu d’étapes pour passer de 2/4/5 à Angular 6.
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
Pour résoudre le problème lié à "angular.json": -
ng update @angular/cli --migrate-only --from=1.7.4
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 :)