J'essaie de suivre les étapes décrites dans le guide de mise à jour Angular , mais je rencontre un problème. Voici ce que j'ai fait:
npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli
Les opérations ci-dessus s’exécutent sans erreur (bien qu’il y ait quelques avertissements), mais ng update ne modifie pas les fichiers de configuration à moins que je ne les exécute une seconde fois. Après la deuxième fois, tout va bien.
ng update @angular/core
Cela fonctionne bien, mais se plaint (WARN) à propos de @ angular/flex-layout @ 5.0.0-beta.14.
ng update @angular/material
Cela produit:
Le paquet "@ angular/flex-layout" a une dépendance d'homologue incompatible avec "@ angular/cdk" (nécessite "^ 5.0.0", installerait "6.0.0") . Dépendances homologues incompatibles trouvées. Voir au dessus.
Donc, à ce moment-là, j'ai changé mon package.json pour que flex-layout soit à la version ^6.0.0-beta.15
et ensuite exécuté:
npm update @angular/flex-layout
Puis j'ai encore essayé de courir
ng update @angular/material
et voici la sortie:
Updating package.json with dependency @angular/material-moment-adapter @ "6.0.0" (was "5.2.5")...
Updating package.json with dependency @angular/cdk @ "6.0.0" (was "5.2.5")...
Updating package.json with dependency @angular/material @ "6.0.0" (was "5.2.5")...
UPDATE package.json (1975 bytes)
npm WARN [email protected] requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of webpack@>=0.9 <2 || ^2.1.0-beta || ^2.2.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","Arch":"any"} (current: {"os":"win32","Arch":"x64"})
updated 3 packages in 15.415s
CREATE angular_material_schematics-36I3g7/collection.json (1251 bytes)
CREATE angular_material_schematics-36I3g7/migration.json (644 bytes)
CREATE angular_material_schematics-36I3g7/dashboard/index.js (1334 bytes)
CREATE angular_material_schematics-36I3g7/dashboard/index.js.map (879 bytes)
CREATE angular_material_schematics-36I3g7/dashboard/schema.js (111 bytes)
CREATE angular_material_schematics-36I3g7/dashboard/schema.js.map (135 bytes)
CREATE angular_material_schematics-36I3g7/dashboard/schema.json (2517 bytes)
...
lots of CREATE statements
...
CREATE angular_material_schematics-36I3g7/utils/devkit-utils/route-utils.js (3478 bytes)
CREATE angular_material_schematics-36I3g7/utils/devkit-utils/route-utils.js.map (2796 bytes)
CREATE angular_material_schematics-36I3g7/utils/devkit-utils/validation.js (663 bytes)
CREATE angular_material_schematics-36I3g7/utils/devkit-utils/validation.js.map (397 bytes)
npm WARN @angular/[email protected] requires a peer of @angular/cdk@>=6.0.0-beta.0 <7.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN @angular/[email protected] requires a peer of @angular/[email protected] but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <5.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of webpack@>=0.9 <2 || ^2.1.0-beta || ^2.2.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","Arch":"any"} (current: {"os":"win32","Arch":"x64"})
+ @angular/[email protected]
+ @angular/[email protected]
updated 2 packages in 15.846s
C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\util\hostReportError.js:9
setTimeout(function () { throw err; });
^
TypeError: Configuration.parseConfigFile is not a function
at _loadConfiguration (C:\Users\Documents\NetBeansProjects\Frontend\node_modules\@angular-devkit\schematics\tasks\tslint-fix\executor.js:16:30)
at Observable.rxjs_1.Observable.obs [as _subscribe] (C:\Users\Documents\NetBeansProjects\Frontend\node_modules\@angular-devkit\schematics\tasks\tslint-fix\executor.js:111:28)
at Observable.subscribe (C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\Observable.js:162:69)
at C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\util\subscribeTo.js:22:31
at Object.subscribeToResult (C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\util\subscribeToResult.js:7:45)
at MergeMapSubscriber._innerSub (C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\operators\mergeMap.js:132:38)
at MergeMapSubscriber._tryNext (C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\operators\mergeMap.js:129:14)
at MergeMapSubscriber._next (C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\operators\mergeMap.js:112:18)
at MergeMapSubscriber.Subscriber.next (C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\Subscriber.js:103:18)
at C:\Users\Documents\NetBeansProjects\Frontend\node_modules\rxjs\internal\util\subscribeToPromise.js:7:24
Des idées sur ce que je fais mal ou comment contourner cette erreur? Merci!
Vous pouvez avoir plus de problèmes que cela, mais je suppose que les erreurs que vous obtenez à propos de rxjs
au bas de votre code envoyé sont dues au fait que la version 6.0.0
de rxjs
a simplifié les chemins d'importation en supprimant les importations approfondies. C'est un changement bienvenu, mais aussi, malheureusement, un changement radical.
Tous les opérateurs sont maintenant en
import { map, reduce, /* etc... */) } from 'rxjs/operators'
Dans le passé, vous deviez les importer individuellement à partir de leurs répertoires respectifs.
Et les classes communes comme les sujets, les observables, les abonnements, etc. sont en
import { Observable, Subscription, BehaviorSubject, /* etc... */) } from 'rxjs'
Ils ont également publié ce qui facilite la mise à niveau - https://www.npmjs.com/package/rxjs-compat
Si l’une de vos dépendances dépend de l’ancienne version de rxjs
, vous voudrez peut-être attendre pour la mettre à niveau ou la réparer vous-même.
Dans mon cas, avant de faire: ng update @angular/material
J'ai d'abord fait: npm uninstall @angular/flex-layout
Ensuite, je pourrais installer avec succès un matériau angulaire.
Si vous avez installé tslint
ou codelyzer
, assurez-vous de les mettre à niveau vers la dernière version avant d'exécuter ng update @angular/material
.