将 Angular 1.4 升级到更高版本
Upgrade Angular 1.4 to greater
我有以下项目结构。我正在尝试将项目升级到更高版本。
我需要有关使用 ngUpgrade 的建议。
我刚刚将具有 50 多个指令和 90 多个服务的 AngularJs 1.4 应用程序升级到 Angular 8.
我采取的做法如下:
- 如果您使用的不是 webpack 的捆绑器(例如 requireJs),请先迁移到 webpack。
link to article how to upgrade webpack from requireJs for example
- 创建一个新的 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
更改 angular.json
构建器以与 @angular-builders/custom-webpack 一起工作,这样你就可以编译你的两个应用程序 - 即你的混合应用程序 - 使用你的 webpack 配置和 Angular 注入配置.
开始 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 应用程序打开。
升级足够的服务和组件后,先将Angular切换到bootstrap,然后再bootstrap AngularJs。
这里你应该先bootstrap Angular。这意味着还要用 AppComponent
.
填充 @NgModule
AppModule
中的 bootstrap
配置
完成所有 AngularJs 服务和指令的升级。
我有以下项目结构。我正在尝试将项目升级到更高版本。
我需要有关使用 ngUpgrade 的建议。
我刚刚将具有 50 多个指令和 90 多个服务的 AngularJs 1.4 应用程序升级到 Angular 8.
我采取的做法如下:
- 如果您使用的不是 webpack 的捆绑器(例如 requireJs),请先迁移到 webpack。 link to article how to upgrade webpack from requireJs for example
- 创建一个新的 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
更改
angular.json
构建器以与 @angular-builders/custom-webpack 一起工作,这样你就可以编译你的两个应用程序 - 即你的混合应用程序 - 使用你的 webpack 配置和 Angular 注入配置.开始 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 应用程序打开。
升级足够的服务和组件后,先将Angular切换到bootstrap,然后再bootstrap AngularJs。 这里你应该先bootstrap Angular。这意味着还要用
填充AppComponent
.@NgModule
AppModule
中的bootstrap
配置完成所有 AngularJs 服务和指令的升级。