我在使用webpack构建的应用程序上遇到问题,并愿意将其构建为AOT。
我知道在我的应用程序中使用非AOT模块会使其失败,我怀疑这一点
但是我从webpack / ngtools得到的输出只是:
找不到模块:错误:无法解析'./../compiled/src/app/app.module.ngfactory'
仅此而已。
有没有办法轻松诊断,在构建过程中输出更多细节,以找出哪些模块搞乱了?
回答我自己的问题:)
这是因为在模块代码中使用了不兼容的AOT代码:
我在模块中使用变量声明,AOT没有说谎,因为它们不是真正的值;
之前:
declare var __API_URL__: boolean;
declare var __VERSION__: string;
// Ommitting code
@NgModule({
...
providers: [
{ provide: BASE_PATH, useValue: __API_URL__ },
{ provide: bypassAuth, useValue: __VERSION__ },
]
...
})
后:
export function getConfig() {
var c = new EnvironmentConfiguration();
c.ApiUrl = process.env.API_URL;
c.Version = process.env.VERSION;
return c;
}
// Ommitting code
@NgModule({
...
providers: [
{
provide: EnvironmentConfiguration, useFactory: getConfig
},
]
...
})