問題タブ [angular-compiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3886 参照

angular - angular 8のモジュールからインジェクターを取得します

問題:

angularでルーティングされていないモジュールの遅延読み込みを設定しています。私が使用したバージョン7では、モジュールを遅延ロードし、モジュールへの最初のエントリポイントを取得するNgModuleFactoryLoader機能です(アウトケースのサービス)load

しかし、Angular 8NgModuleFactoryLoaderでは非推奨になっているため、代わりにその方法でモジュールをロードする必要があります。

ここでの問題は、新しい遅延読み込み (IVY のアイデアの 1 つ - ファクトリがない) で、ファクトリを取得してプロバイダを取得できないことです。

私がすでに試したこと:

最初の解決策(製品にAOTコンパイラを使用しているため、私たちには適していないJITコンパイラでのみ機能します)

2番目の解決策(ダーティで完全にチェックされngInjectorDefていません。IVYの新機能を使用しており、まだ説明されているAPIはありません):

ngInjectorDef- angular によって追加され、ファクトリ、プロバイダー、およびインポートのプロパティを持つ静的モジュール クラス プロパティです。

ソース:

0 投票する
2 に答える
149 参照

angular - カスタム Action で AsyncScheduler を使用する方法

ページが表示されていないときに、RXJS ストリームが 250 ミリ秒間隔でデータのチャンクを処理する必要があります。Chrome は、これらの間隔を 1000 ミリ秒間隔に調整しています。これを回避するために、Web ワーカー内で setInterval を使用する AsyncAction を実装しました。私は次のように使用しています:

export const customScheduler = new AsyncScheduler(WebWorkerAsyncAction)

しかし、これには問題がないわけではありません。これを JIT を使用してコンパイルすると、正常に動作します。AOT (別のプロジェクト要件) でコンパイルする場合、最初のコンパイルでは機能しますが、その後の 2 回目のコンパイルは次のエラーで失敗します。

ERROR in : エラー: TsCompilerAotCompilerTypeCheckHostAdapter.fromSummaryFileName (\node_modules@angular\compiler-cli\src\transformers\compiler_host.js:272:23 で /node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts から ./ を解決できませんでした) AotSummaryResolver.fromSummaryFileName (\node_modules@angular\compiler\bundles\compiler.umd.js:26320:30) で \node_modules@angular\compiler\bundles\compiler.umd.js:24481:126 で Array.map () FromJsonDeserializer.deserialize (\node_modules@angular\compiler\bundles\compiler.umd.js:24481:41) で deserializeSummaries (\node_modules@angular\compiler\bundles\compiler.umd.js:24086:29) で AotSummaryResolver._loadSummaryFile (\node_modules@angular\compiler\bundles\compiler.umd.js:26370:26) AotSummaryResolver で。resolveSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:26328:22) で ToJsonSerializer.loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) で ToJsonSerializer.visitStaticSymbol ( \node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) で ToJsonSerializer.visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) で visitValue (\node_modules@angular) \compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles\compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@ angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28)loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) で ToJsonSerializer.visitStaticSymbol (\node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) で ToJsonSerializer.visitOther ( \node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles \compiler.umd.js:2451:54 at Array.map () ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@angular\コンパイラ\バンドル\compiler.umd.js:2429:28)loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) で ToJsonSerializer.visitStaticSymbol (\node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) で ToJsonSerializer.visitOther ( \node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles \compiler.umd.js:2451:54 at Array.map () ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@angular\コンパイラ\バンドル\compiler.umd.js:2429:28)visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler \bundles\compiler.umd.js:2451:54 at Array.map () ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@ angular\compiler\bundles\compiler.umd.js:2429:28)visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler \bundles\compiler.umd.js:2451:54 at Array.map () ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@ angular\compiler\bundles\compiler.umd.js:2429:28)24) visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28) で24) visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28) で

これは「内部」RXJS パッケージを使用する際の癖だと思いますが、AsyncHandler に頼らずにこれを回避する方法はわかりません。