AngularJS迁移为使用导入/导出

时间:2019-01-11 11:40:26

标签: angularjs angular typescript angularjs-components

我们的项目目前仍在AngularJS(v1.6)+ TypeScript上运行,但我们希望通过实现类似于Angular编写方式的组件,开始使应用程序准备升级到最新的Angular。当前,我们不使用进口或出口,而是要逐步引入这一点。即我们想开始使用:

import * as angular from "angular";
import { MyComponentComponent } from './MyComponent.component';

export default angular
  .module('myModule', [])
  .component('myComponent', MyComponent);

代替

angular
  .module('myModule', [])
  .component('myComponent', MyComponent);

但是,当前这样做会由于范围而导致问题。我们的应用程序现在具有 global 变量angular,所有内容都附加到该变量上,而import / export创建的闭包将注入angular的单独实例,因此这两个变量不是能够交流。

是否有一种将两种方法结合在一起的方法,以便我们可以逐步升级现有系统?

3 个答案:

答案 0 :(得分:4)

尝试使用NgUpgrade,它将把您的应用程序升级到最新版本。

看看https://angular.io/guide/upgrade

答案 1 :(得分:1)

使用ngUpgrade升级角度是一个很好的建议。借助于此,您可以以更高效的方式升级现有的angularjs项目,例如通过同时运行angularjs和angular代码并排转换代码。为了成功执行迁移,需要遵循某些步骤:

  1. 为Angular和ngUpgrade安装依赖项。
  2. 为您的项目设置ngUpgrade。

我们目前也正在将我们的angularjs项目迁移到angular。我们已经按照以下参考进行了迁移。它将为您提供有关该过程的详细概述,并希望它将以某种方式为您提供帮助:

答案 2 :(得分:0)

有两种方法(2和3相似,但实际上是分开的):

  1. 重写应用程序(最好的方法,但是对于大型应用程序则困难)
  2. 进入混合状态(例如,通过升级 AngularJS和Angular 5的过渡混合应用程序)。参见AngularJS to Angular5 — Upgrading a large application
  3. 明智地迁移每个模块。参见Migrating Angular 1 Applications to Latest Angular in 5 Simple Steps