Сообщество Hello SO и Angularians!
Итак, я посередине развиваю огромную платформу в Angular 2. И я понял, что многие внешние библиотеки и зависимости для Angular 2 переносятся на новый Angular 4. Дайте мне много ошибок, очевидно.
Я мог бы разветкить эти библиотеки и использовать разветвленные версии и подписаться на главную библиотеку, или я мог бы просто обновить до Angular 4 моего проекта.
Вопросы, на которые нужно ответить, чтобы определить, стоит ли мне мигрировать:
- Совместимость с Angular 2.4
Я нашел некоторые адаптации для обеспечения совместимости с наследием, например: https://github.com/angular/angular/commit/e99d721
- Изменяет ширину приложения
Должен ли я пройти через все мое приложение и начать исправление?
Я имею в виду, что основные функции переработаны таким образом, что мне придется пересмотреть многие из них?
Или, есть много несовместимости build/core, которые будут держать меня занятыми на днях исправлением ошибок/предупреждений компиляции вместо разработки?
Я не прошу кого-то сделать для меня исследование. Я спрашиваю людей, что, возможно, уже прошел этот процесс или просто хорошо знаю обе версии, чтобы дать мне несколько советов по опыту, разъяснения, и т.д.
На данный момент я делаю свое исследование здесь:
- https://github.com/angular/angular/blob/master/CHANGELOG.md
- http://angularjs.blogspot.it/2017/03/angular-400-now-available.html
- https://learninglaravel.net/angular-4-new-features-and-improvements
UPDATE
Я просто перешел на Angular 4. Ссылка, которую @PierreDuc поставил в его ответе, - очень хороший инструмент, чтобы иметь достойный ориентир в процессе миграции.
Я бы порекомендовал:
- Ознакомьтесь с новыми функциями и обновите себя с помощью Angular 4. Это было особенно полезно: https://angularjs.blogspot.it/2017/03/angular-400-now-available.html
- Следуйте рекомендациям Angular и измените свой проект: https://angular-update-guide.firebaseapp.com/
Я бы также рекомендовал передать ваш текущий проект, создать новую ветку в вашем репозитории dev и продолжить миграцию в этой ветке.
Проблема, с которой я столкнулся: Input
, Output
и ContentChild
будут импортированы с неправильного пути.
Мой случай:
import { Component, OnInit, OnDestro } from '@angular/core';
import { Input, ContentChild } from "@angular/core/src/metadata/directives";
Решение:
import { Component, OnInit, OnDestroy, Input, ContentChild } from '@angular/core';