将 Angular 1.4 升级到更高版本

Upgrade Angular 1.4 to greater

我有以下项目结构。我正在尝试将项目升级到更高版本。

我需要有关使用 ngUpgrade 的建议。

我刚刚将具有 50 多个指令和 90 多个服务的 AngularJs 1.4 应用程序升级到 Angular 8.

我采取的做法如下:

  1. 如果您使用的不是 webpack 的捆绑器(例如 requireJs),请先迁移到 webpack。 link to article how to upgrade webpack from requireJs for example
  2. 创建一个新的 Angular 项目,它将与您的 1.4 项目并存:
Project
-app  // Your AngularJs app
--Controllers
--Services
--etc..
-ng_app // Your Angular app
--Components
--Services
--etc..
angular.json
webpack.config.js
Global.asax
packages.config
  1. 更改 angular.json 构建器以与 @angular-builders/custom-webpack 一起工作,这样你就可以编译你的两个应用程序 - 即你的混合应用程序 - 使用你的 webpack 配置和 Angular 注入配置.

  2. 开始 Upgrading AngularJs services and directives。此时,您的 AngularJs 应用程序应该首先 bootstrapped。 您仍然可以通过 Angular Bootstrap 您的 AngularJs 应用程序:

export class AppModule {
  constructor(private upgrade: UpgradeModule) { }
  ngDoBootstrap() {
    this.upgrade.bootstrap(document.body, ['heroApp'], { strictDi: true });
  }
}

但这里的主要思想是 @NgModule for AppModule 将不包含 bootstrap 配置。只有 entryComponents(如果您使用的是 angular 版本 8 或更低版本)将通过降级语句从您的 AngularJs 应用程序打开。

  1. 升级足够的服务和组件后,先将Angular切换到bootstrap,然后再bootstrap AngularJs。 这里你应该先bootstrap Angular。这意味着还要用 AppComponent.

    填充 @NgModule AppModule 中的 bootstrap 配置
  2. 完成所有 AngularJs 服务和指令的升级。