我的用例如下:
我有两个模块,分别是 A 和 B 。 A 处理所有客户端交互,而 B 处理单点登录服务中的令牌更新,并在后台使用iFrame进行。 根据当前URL,我需要有条件地引导模块 A 或 B 。这意味着在任何给定时间点,两个模块中只有一个可以在应用程序中使用。 我这样做是因为我将在 A的 根组件中拥有iFrame,该iFrame将加载模块 B B 始终在iFrame的后台运行。
我的main.ts文件看起来像这样。
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { A } from './app/app.module';
import { B } from './app/modules/b/b.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
if (!location.href.includes('b2b/auth')) {
platformBrowserDynamic().bootstrapModule(A)
.catch(err => console.log(err));
} else {
platformBrowserDynamic().bootstrapModule(B)
.catch(err => console.log(err));
}
问题是,上面的代码仅在ng build
的开发环境中就可以正常工作,但是一旦我使用ng build --prod
构建产品,它就可以成功编译,但是在运行时会抛出:
uncaught error in function() {} No NgModule metadata found for 'function (){}'.
然后执行到此为止
我也得到:
WARNING in Lazy routes discovery is not enabled. Because there is neither an entryModule nor a statically analyzable bootstrap code in the main file.
无论是开发人员还是产品构建。
我看到很多人都遇到了这个问题,我想知道是否有人能够解决这个问题。
ng build throws an error: “Tried to find bootstrap code- but could not.”
https://github.com/angular/angular-cli/issues/4624
bug: No NgModule metadata found for 'function(){}'. Magical optimization for aot
No NgModule metadata found for 'function (){}'
但是没有任何建议的运气。 我知道我过分简化了我的问题陈述,但是这样做是为了清楚地了解我的用例和面临的问题。
感谢您的帮助。谢谢