モジュールを動的にロードするモジュールを作成しようとしています(ルータのように)。現在私は開発環境でこれを行うことができますが、プロダクションでプロジェクトを構築することはできませんでした。私は、問題を絞り込んと私はこのように私のモジュールのプロバイダにANALYZE_FOR_ENTRY_COMPONENTSを追加することで、ルータのprovideRoutes機能を模倣しようとしたところ、問題がどこかであることが判明: providers: [ { provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: dynamicModules, multi: true }, { provide: DYNAMIC_MODULE_PATHS, useValue: dynamicModules }, { provide: NgModuleFactoryLoader, useClass: SystemJsNgModuleLoader }, ModuleLoaderService ]
ANALYZE_FOR_ENTRY_COMPONENTSがモジュールを動的にロードするために本番環境で動作していません
しかし、私はこのエラーを得続ける: エラー:することはできません'DynamicModule' in '../dynamic/dynamic.module'を見つけてください
絶対パスまたは相対パスを使用するかどうかは関係ありません。
奇妙な部分は、私がプロバイダを持っている場所にファイルを再保存するとngのサービスを提供し、うまく動作します。
ルータのソースから見ると、これはうまくいくはずですが、何か不足している可能性があります。
私はこれを長い間無視していましたが、現在は生産用にビルドしようとするとエラーが発生します。
サンプルプロジェクトでは、ここで見つけることができます: Sample
それはコンソールにメッセージをログに記録します。
TL; DR;
私は@angular/router
から任意の機能を使用せずにdynamiclyモジュールをロードしようとしていますので、私はANALYZE_FOR_ENTRY_COMPONENTS
を使用していますが、私は、このランタイムエラーを得続ける:Cannot find module 'SomeModule' in 'path/to/some.module'
を。エラーが表示されるのは、最初にng serve
を実行したときにローダー部分を再保存すると表示され、消えてすべて正常に機能します。