Поскольку Angular 6 уже здесь, я хочу обновить или переместить мое клиентское приложение angular 5 на angular 6, но я не получаю ни одного учебного пособия или чего-либо, что могло бы мне помочь.

По моему мнению, мне просто нужно запустить новый Angular CLI, а затем перенести мой старый источник в новый проект. Я читал, что Angular 6 использует новый рендерер под названием Ivy. Должен ли я изменить свой проект в соответствии с Айви?

117
Abhishek Chokra 25 Фев 2018 в 08:38

10 ответов

Запустите приведенные ниже комментарии, чтобы обновить Angular 6 с Angular 5

  1. ng update @ angular / cli
  2. ng update @ angular / core
  3. npm установить rxjs-compat (для поддержки более старой версии rxjs 5.6)
  4. npm install -g rxjs-tslint (чтобы изменить код из rxjs 5 на rxjs 6 в коде. Устанавливайте глобально, тогда будет работать только)
  5. rxjs-5-to-6-migrate -p src / tsconfig.app.json (после установки мы должны изменить его в нашем исходном коде на формат rxjs6)
  6. npm удалить rxjs-compat (окончательно удалить это)
2
user2716958 1 Июн 2018 в 09:24

Просто запустите следующую команду:

ng update

Примечание: это не будет обновляться глобально.

0
Vinay Kumar 4 Май 2018 в 07:43

Посмотрите подробности пошагового обновления с 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- рабочая область для последние детали конфигурации. Вы должны переместить любой из ваших существующих Конфигурация в новый файл конфигурации.
  • Для этого создайте еще один фиктивный проект с последним кликом, использующим ng new ‘your-project 'и такой же значения по умолчанию, такие как префикс, стиль и т. д., которые вы использовали ранее для своего проекта. Создать новый проект с кли 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:) Посмотрите здесь мой пост о том, как обновить

8
Uday Vunnam 3 Июн 2018 в 12:24

Angular 6 только что был выпущен.

https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4

Вот что сработало для одного из моих небольших проектов

  1. npm install -g @ angular / cli
  2. npm install @ angular / cli
  3. ng update @ angular / cli - только для миграции --from = 1.7.0
  4. ng update @ angular / core
  5. npm установить rxjs-compat
  6. нг служить

Возможно, вам придется обновить ваши скрипты запуска в package.json Например. если вы используете флаги типа «приложение» и «среда», они были обновлены до «проект» и «конфигурация» соответственно.

Обратитесь к https://update.angular.io/ за более подробным руководством.

19
Arjun Shankar 4 Май 2018 в 01:30

Полное руководство

----------------- С angular-cli --------------------------

1. Обновите CLI глобально и локально

  1. Использование NPM (убедитесь, что у вас версия узла 8+)

    npm uninstall -g @ angular / cli очистка кеша npm npm install -g @ angular / cli @ latest npm i @ angular / cli --save

  2. Используя пряжу

    удаление пряжи @ angular / cli глобальная пряжа add @ angular / cli добавление пряжи @ angular / cli

2. Обновление зависимостей

ng update @angular/cli
ng update @angular/core
ng update @angular/material
ng update rxjs

Angular 6 теперь зависит от TypeScript 2.7 и RxJS 6

Обычно это означает, что вы должны обновлять свой код везде, где используются импорт и операторы RxJS, но, к счастью, есть пакет, который берет на себя большую часть тяжелой работы:

npm i -g rxjs-tslint 

//or using yarn

yarn global add rxjs-tslint

Затем вы можете запустить rxjs-5-to-6-migrate

rxjs-5-to-6-migrate -p src/tsconfig.app.json

Наконец удалите rxjs-compat

npm uninstall rxjs-compat

// or using Yarn

yarn remove rxjs-compat

Перейдите по этой ссылке https://alligator.io/angular/angular-6/


------------------- Без угловых кли -------------------------

Поэтому вы должны вручную обновить файл package.json.

package.json screenshoot of upgrade packages

Тогда беги

 npm update
 npm install --save rxjs-compat
 npm i -g rxjs-tslint
 rxjs-5-to-6-migrate -p src/tsconfig.app.json
2
bereket gebredingle 22 Сен 2018 в 22:00

Как отметил Винай Кумар, он не будет обновлять глобально установленный Angular CLI. Чтобы обновить его глобально, просто используйте следующие команды:

npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@latest

Обратите внимание, что если вы хотите обновить существующий проект, вам нужно изменить существующий проект, вы должны изменить package.json внутри вашего проекта.

В самом Angular нет никаких существенных изменений, но они есть в RxJS, поэтому не забывайте использовать библиотеку rxjs-compat для работы с унаследованным кодом.

  npm install --save rxjs-compat  

Я написал хорошую статью об установке / обновлении Angular CLI http://bmnteam.com/angular-cli- установка /

1
Maksim B. 5 Май 2018 в 11:13

Мне пришлось перезапустить нг update @ angular / cli , чтобы angular-cli.json был изменен на angular.json

4
Kris Bonev 2 Июн 2018 в 22:24

Есть несколько шагов для обновления 2/4/5 до Angular 6.

npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install

Чтобы исправить проблему, связанную с "angular.json": -

ng update @angular/cli --migrate-only --from=1.7.4

Магазин МИГРАЦИЯ
https://github.com/ngrx/platform/blob/master/ MIGRATION.md # ngrxstore

RXJS МИГРАЦИЯ
https://www.academind.com/learn/javascript/rxjs -6 -что- изменилось /

Надеюсь, это поможет вам :)

0
Shihe Zhang 3 Сен 2018 в 09:47

Вот как я заставляю это работать.

Моя среда:

Angular CLI Global: 6.0.0, Local: 1.7.4, Angular: 5.2, Typescript 2.5.3

Примечание. Чтобы включить ng Update, сначала необходимо установить Angular CLI 6.0. npm install -g @angular/cli or npm install @angular/cli

  1. ng update //update Angular Package core/common/complier... to 6.0.0

  2. ng update @angular/cli //change angular-cli.json to angular.json

Необязательно, если у вас есть angular-material 5.4.2, ngx-translate 9.1.1, ng-bootstrap / ng-bootstrap 1.1.1:

  1. ng update @angular/material //upgrade to 6.0.1

  2. npm install @ngx-translate/core@10.0.1 --save //upgrade ngX translate to 10.0.1 for Angular 6

5 npm install --save @ng-bootstrap/ng-bootstrap@2.0.0 //for ng-bootstrap

Если вы используете Observable и получите ошибку:

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'.

Изменение: import {Observable} из "rxjs / Observable"; import {of} из 'rxjs / observable / of';

К

import { Observable, of } from "rxjs";

Проблема с угловым интерфейсом командной строки: https://github.com/angular/angular-cli/issues/ 10621

0
Ryan Huang 8 Май 2018 в 13:49

Просто используйте официальное руководство по обновлению, которое расскажет вам, что вам нужно сделать для ваших собственных конкретных потребностей:

Upgrade angular

https://update.angular.io/

15
Valentin Despa 14 Май 2018 в 09:20