如何将复杂项目从Angular 1.5迁移到2?

时间:2017-01-08 17:25:14

标签: javascript angularjs angular jhipster

我有一个包含实时数据的生产站点。

  • 该网站基于jHipster(angular 1.5 + java)。
  • 该网站是以州为基础的。
  • Websockets用于异步通信。

现在,我想将网站从角度v1.5迁移到v2。在阅读官方角度迁移指南时,似乎我必须重写大量代码。迁移的最佳方法是什么?

  1. 从头开始以角度2写出所有内容。

  2. 按照官方角度文档

  3. 中的升级指南(使用升级模块)进行操作

2 个答案:

答案 0 :(得分:0)

取决于

无论如何,你必须重写很多代码。这是肯定的。而且没有简单的方法。

我将与您分享两个想法(方法),然后只是从下往上重写所有内容:

  1. 使用ngForward方法。

    ngForward方法中,我们实际上并没有升级现有的Angular 1.x应用程序 - 我们正在创建一个环境,其中这些1.x应用程序的行为类似于Angular 2应用程序。换句话说,我们可以逐步重写我们的Angular 1.x应用程序,使其像Angular 2应用程序一样工作。然后,我们可以在现有应用程序的顶部为此1.x应用程序进一步增加新的Angular 2功能。

    this blog post中了解详情。

  2. 使用ngUpgrade方法。

    通过使用ngForward方法,我们可以在现有的Angular 1.x应用程序之上以Angular 2.0的方式编写代码。然而,对于某些人来说,这种方法可能并不舒服,因为对其可维护性的担忧以及与未来Angular版本的向后兼容性可能是一个问题。从长远来看,ngForward方法肯定会导致庞大的Angular 1.x应用程序出现问题。使用ngUpgrade方法已经在很大程度上确定了这个问题。 ngUpgrade方法具有可从official Angular website获得的全面文档。

  3. 您需要根据具体的用例,项目目标等做出决定。

    致谢:我从this tutorial了解到了这一点。

答案 1 :(得分:0)

还有第三种方法:在Angular 2中创建并行代码库,并通过url导航将其与旧的Angular 1x代码链接。除了添加新的导航URL之外,您无需修复或更改以前代码库的任何LOC。这样可以节省您的时间。您的新代码将具有纯Angular 2,在页面上同时没有1.5和2x的任何混合。唯一的挑战是在请求之间共享用户状态和数据,因为您不能再使用共享服务或工厂了,但这是可行的。

我的类似迁移历史最近发表在this blog post