Ознакомьтесь с пошаговыми инструкциями по обновлению с Angular 5 до Angular 6. Они содержат подробную информацию о проблемах, с которыми вы сталкиваетесь во время обновления, и о том, как их решить.
- Обновите версию узла до 8 или выше и установите глобальную версию Angular cli latest с помощью npm i -g @ angular / cli @ latest.
- Angular 6 использует angular.json в качестве файла конфигурации вместо .anguar-cli.json. Также был изменен цлинт. Проверьте https://github.com/angular/angular-cli/wiki/angular-workspace для получения последних сведений о конфигурации. Вам необходимо переместить любую существующую конфигурацию в новый файл конфигурации.
- Для этого создайте еще один фиктивный проект с последней версией cli, используя ng new 'your-project' и те же значения по умолчанию, как префикс, стиль и т. Д., Которые вы использовали ранее для своего проекта. Создайте новый проект с помощью cli
https://github.com/angular/angular-cli/wiki/new
- Используйте
https://update.angular.io/, чтобы проверить, что было изменено в вашей текущей версии Angular → Angular 6. В нем описано, как их изменять / исправлять.
- Следуйте инструкциям выше и скопируйте / обновите файл angular.json, созданный на шаге 2. Выполните npm i в своем проекте, чтобы получить все зависимости и выполнить обновление npm
- А теперь самое главное. Обновление RxJS и разрешение конфликтов. В этом выпуске RxJS стандартизировал импорт операторов и создателей Observable. Сделайте npm i -g rxjs-tslint и добавьте ниже конфигурацию lint в tslint.json
{
"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
}
}
- Теперь запустите ng lint --fix. Это исправляет несколько элементов, но большинство оставшихся проблем будут выделены, и вам придется исправить это вручную.
Изменение имени оператора:
do -> tap,
catch -> catchError,
switch -> switchAll,
finally -> finalize
Все операторы перенесены в rxjs / operator
import { map, filter, reduce } from 'rxjs/operators';
Наблюдаемые методы создания перенесены в rxjs
import { Observable, Subject, of, from } from 'rxjs';
У вас все настроено. Добро пожаловать в Angular 6 :)
Проверьте мой блог здесь о том, как обновить