我想开始在现有angularjs
项目中使用 Angular 组件,并希望使用它downgradeModule
来创建混合Angular/AngularJS
应用程序。
我已经能够angular
使用 main.ts 文件中的代码降级我的组件:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { downgradeModule } from '@angular/upgrade/static';
import { AppModule } from '../new-app/src/app/app.module';
const bootstrapFn = (extraProviders: StaticProvider[]) => {
const platformRef = platformBrowserDynamic(extraProviders);
return platformRef.bootstrapModule(AppModule);
};
const downgradedModule = downgradeModule(bootstrapFn);
angular.module('old.angular.js.app', [..., downgradedModule])
ng build
虽然使用and命令时一切正常ng serve
,但 prod 模式存在问题 -我运行时未生成编译js
代码(我无法将其视为编译文件的一部分)。AppModule
ng build --prod
main.{hash}.js
我怀疑这是由于按需引导的事实,AppModule
但我不知道如何解决这个问题并让这个模块编译。
目前,由于尚未编译 AppModule,我的 angularjs 应用程序中出现此错误
Error: [$injector:modulerr] Failed to instantiate module old.angular.js.app due to:
Error: [$injector:modulerr] Failed to instantiate module old.angular.js.app.newmodule due to:
Error: [$injector:nomod] Module 'old.angular.js.app.newmodule' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.