ngModuleを設定するために再利用可能なクラスを作成しようとしています。ngModuleメタデータを含むクラスを返す
クラスには、次のようになります。
export class IncludeServerApp {
constructor(AppComponent: any, AppModule: any) {
return @NgModule({
bootstrap: [AppComponent],
providers: [
{
provide: APP_BOOTSTRAP_LISTENER,
useFactory: onBootstrap,
multi: true,
deps: [
ApplicationRef,
TransferState
}
],
imports: [
BrowserModule.withServerTransition({
appId: 'my-app-id'
}),
ServerModule,
ServerTransferStateModule,
AppModule
]
})
class ServerAppModule { }
}
}
}
私はそのようにのようなクラスを使用します。
new IncludeServerApp(AppComponent, AppModule)
しかし、私はこのエラーを取得しています:私は何から
Error: No NgModule metadata found for '[object Object]'.
at NgModuleResolver.resolve (/Users/michael/Code/ng-universal-demo/dist/server.js:73337:23)
at CompileMetadataResolver.getNgModuleMetadata (/Users/michael/Code/ng-universal-demo/dist/server.js:73921:60)
at JitCompiler._loadModules (/Users/michael/Code/ng-universal-demo/dist/server.js:85088:66)
at JitCompiler._compileModuleAndComponents (/Users/michael/Code/ng-universal-demo/dist/server.js:85047:52)
at JitCompiler.compileModuleAsync (/Users/michael/Code/ng-universal-demo/dist/server.js:85009:23)
at Promise (/Users/michael/Code/ng-universal-demo/dist/server.js:112849:22)
at new ZoneAwarePromise (/Users/michael/Code/ng-universal-demo/dist/server.js:151252:29)
at getFactory (/Users/michael/Code/ng-universal-demo/dist/server.js:112835:12)
at View.engine (/Users/michael/Code/ng-universal-demo/dist/server.js:112813:13)
at View.render (/Users/michael/Code/ng-universal-demo/dist/server.js:116553:8)
をWebpackは何らかの理由でコンパイルした後に@ngModule
コードを削除しています。これは実際に可能ですか?返信しようとしているServerAppModule
クラスのメタデータを提供するために@ngModuleが使用されていることを理解しています。
私は@ngModule前にリターンを持っている場合は、エラーがある気づいた:
Error: No NgModule metadata found for '[object Object]'
それはclass ServerAppModule {}
前にある場合は、エラーがある:
Error: No NgModule metadata found for 'ServerAppModule'.
AOTチップありがとうございます。申し訳ありませんが、paramsはtypoでした。私はコンストラクタでのリターンも見逃しました。 @ngModuleの前に返ってきたことが気になったのですが、エラーは '' 'Errorです:' ['Object ']'' 'の' '' '' ServerAppModule {} '' 'エラー: '' 'エラー: 'ServerAppModule'のNgModuleメタデータが見つかりません。' '' –
はい、戻り値が間違っています。あなたは私が信じる下に置くべきです。私の答えを変えてください。そして、コンストラクタから別のものを返すことはできません。余分なメソッドを追加するか、そのエラーを修正した静的メソッド – PierreDuc
を使用する必要がありますが、今度はAppModuleについて取得しています - '' 'Error:モジュール 'ServerAppModule'によってインポートされた予期しない値 'AppModule'。 @NgModuleアノテーションを追加してください.''' –