Hi all,
We found an issue: depending on if compiling with ionic cordova build
or ionic cordova build --prod --release
, a ternary conditional operator considers the condition flag to be always true
, being that flag an static member of a Typescript class.
For example:
File app.config.ts
:
export class AppConfig {
public static readonly IS_COMPONENT_FLAG = false;
}
File app.module.ts
:
@NgModule({
imports: [
...
IonicModule.forRoot(AppConfig.IS_COMPONENT_FLAG ? AppComponentTrue : AppComponentFalse)
],
...
})
export class AppModule { }
When the previous code is run with ionic serve
or ionic cordova run
, the AppComponentTrue
component is displayed. Nevertheless when run with ionic cordova run --prod --release
, the AppComponentFalse
component is displayed.
In this S.O. question there’s a simple project you can download to reproduce it.
Does anybody have an explanation for this? Is it an Ionic / Angular AOT compiler bug?
Thanks in advance.