Ошибка при обновлении до Angular Material 6.0.0 - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь выполнить действия, описанные в руководстве по обновлению Angular , но у меня возникла проблема. Вот что я сделал:

npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli

Вышеописанное работает без ошибок (хотя есть некоторые предупреждения), но ng update на самом деле не изменяет файлы конфигурации, если я не запускаю его во второй раз. После второго раза все выглядит хорошо.

ng update @angular/core

Это работает нормально, но жалуется (ПРЕДУПРЕЖДЕНИЕ) на @ angular / flex-layout @ 5.0.0-beta.14.

ng update @angular/material

Это производит:

Пакет "@ angular / flex-layout" имеет несовместимую одноранговую зависимость от "@ angular / cdk" (требуется "^ 5.0.0", установит "6.0.0"). Найдены несовместимые одноранговые зависимости. Смотри выше.

Итак, в этот момент я изменил свой package.json, чтобы flex-layout имел версию ^6.0.0-beta.15, а затем запустил:

npm update @angular/flex-layout

Затем я снова попытался запустить

ng update @angular/material

и вот вывод:

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 ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@2.0.1 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 codelyzer@2.0.1 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 worker-loader@0.8.1 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: fsevents@1.1.3 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: 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/flex-layout@6.0.0-beta.15 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/material-moment-adapter@6.0.0 requires a peer of @angular/material@6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN codelyzer@2.0.1 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 codelyzer@2.0.1 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 worker-loader@0.8.1 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: fsevents@1.1.3 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ @angular/material@5.2.5
+ @angular/cdk@5.2.5
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

Есть идеи, что я делаю неправильно или как обойти эту ошибку? Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 мая 2018

В моем случае, прежде чем делать: ng update @angular/material

Я впервые сделал: npm uninstall @angular/flex-layout

Тогда я мог бы успешно установить угловой материал.

0 голосов
/ 05 июля 2018

Если у вас установлено tslint или codelyzer, убедитесь, что вы обновили их до последней версии, прежде чем запускать ng update @angular/material.

0 голосов
/ 04 мая 2018

У вас может быть больше проблем, чем просто это, но я подозреваю, что ошибки, которые вы получаете около rxjs в нижней части вашего опубликованного кода, вызваны тем, что 6.0.0 версия rxjs упростила пути импорта, удалив глубокий импорт. Это долгожданное изменение, но, к сожалению, переломное.

Все операторы сейчас в

 import { map, reduce, /* etc... */) } from 'rxjs/operators'

Раньше вам приходилось импортировать их по отдельности из соответствующих каталогов.

А общие классы, такие как предметы, наблюдаемые, подписки и т. Д. Находятся в

import { Observable, Subscription, BehaviorSubject, /* etc... */) } from 'rxjs'

Они также выпустили это, что помогает с обновлением - https://www.npmjs.com/package/rxjs-compat

Если какая-либо из ваших зависимостей зависит от более старой версии rxjs, вы можете подождать, чтобы обновить или исправить их самостоятельно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...