你好 SO 社区和 Angularians!
所以,我在 Angular 2 中开发了一个巨大的平台。我意识到 Angular 2 的许多外部库和依赖项正在迁移到新的 Angular 4。很明显,这给了我很多错误。
我可以分叉这些库并使用分叉版本并订阅主库开发,或者我可以将我的项目升级到 Angular 4。
为了确定我是否值得迁移而需要回答的问题:
- 与 Angular 2.4 的兼容性
我发现了一些调整以确保与旧版的兼容性,例如:https ://github.com/angular/angular/commit/e99d721
- 更改应用程序范围
我是否必须浏览整个应用程序并开始修复问题?
我的意思是,主要功能是否以我必须审查其中许多的方式进行了重新设计?
或者,是否有许多构建/核心不兼容会让我忙于修复编译错误/警告而不是开发?
我不是要求有人为我做研究,我是在问那些可能已经经历过这个过程或者只是熟悉这两个版本的人,以便给我一些经验提示、澄清等。
目前,我正在这里做我的研究:
- 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
更新
我刚刚迁移到 Angular 4。@PierreDuc 在他的答案中提供的链接是一个非常好的工具,可以在迁移过程中获得体面的指导。
我会推荐:
- 阅读新功能并使用 Angular 4 更新自己。这特别有用:https ://angularjs.blogspot.it/2017/03/angular-400-now-available.html
- 遵循 Angular 的指南并修改您的项目:https ://angular-update-guide.firebaseapp.com/
我还建议提交您当前的项目,在您的开发存储库中创建一个新分支,然后在该分支中继续迁移。
我遇到的一个问题:
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';