Прежде всего, я должен сказать, что мое приложение отлично работает при «использовании» JIT. Я даже могу объединить в prod (без AOT, просто JIT), и он отлично работает.
Но когда я пытаюсь скомпилировать его (AOT) с помощью ngc
, я получаю сообщение об ошибке:
Can't resolve all parameters for MyComponentView in /path/my-component/my-component.view.ts:
([object Object], [object Object], [object Object], [object Object], ?)
Это конструктор MyComponent
:
constructor( headerService:HeaderService, sidebarService:SidebarService, @Inject( AuthService.Token ) authService:AuthService.Class, router:Router, carbon:Carbon ) {
…
this.carbon = carbon;
…
}
Последняя зависимость (Carbon) предоставляется в AppModule следующим образом:
@NgModule( {
imports: [
…
],
declarations: [
…
],
providers: [
…
CARBON_PROVIDERS, //<---- HERE IS BEING PROVIDED
CARBON_SERVICES_PROVIDERS,
…
],
bootstrap: [ AppComponent ],
} )
export class AppModule { }
CARBON_PROVIDERS
импортируются с помощью проекта angular2-carbonldp, который экспортирует их следующим образом:
export const CARBON_PROVIDERS:any[] = [
{
provide: Carbon,
useFactory(): Context {
return carbon;
},
},
{
provide: ContextToken,
useFactory(): Context {
return activeContextFn();
},
},
{
provide: App.Context,
useFactory(): App.Context {
if( ! activeContextFn.isAppContext() ) throw new Errors.IllegalStateError( "The activeContext is not an App Context" );
return <any>activeContextFn();
},
},
];
Но у меня такая же ошибка, и я не понимаю, ПОЧЕМУ! Ребята, вы случайно не знаете, почему это так работает?