web-dev-qa-db-fra.com

Erreur lors de la mise à niveau vers Angular Matière 6.0.0

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!

3
Tim

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.

1
diopside

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.

0
ricardo_8990

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.

0
Brox Huang