問題タブ [angular-ivy]
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.
angular - Angular Ivy でビルドするとコンパイル エラーが発生する
angular 8 プロジェクトがあり、angular Ivy を有効にすると、コンパイル時に失敗します。他の人が提供し、Angular 8.1.0 (8.0.3 から) に更新されたソリューションを確認しても、問題は解決せず、以下のエラーが表示され続けます。
私の Angular Ivy は tsconfig.app.json で有効になっています。
私の package.json には次の依存関係があります。
上記の問題を解決する方法を教えてください。
angular - angular 8のモジュールからインジェクターを取得します
問題:
angularでルーティングされていないモジュールの遅延読み込みを設定しています。私が使用したバージョン7では、モジュールを遅延ロードし、モジュールへの最初のエントリポイントを取得するNgModuleFactoryLoader
機能です(アウトケースのサービス)load
しかし、Angular 8NgModuleFactoryLoader
では非推奨になっているため、代わりにその方法でモジュールをロードする必要があります。
ここでの問題は、新しい遅延読み込み (IVY のアイデアの 1 つ - ファクトリがない) で、ファクトリを取得してプロバイダを取得できないことです。
私がすでに試したこと:
最初の解決策(製品にAOTコンパイラを使用しているため、私たちには適していないJITコンパイラでのみ機能します)
2番目の解決策(ダーティで完全にチェックされngInjectorDef
ていません。IVYの新機能を使用しており、まだ説明されているAPIはありません):
ngInjectorDef
- angular によって追加され、ファクトリ、プロバイダー、およびインポートのプロパティを持つ静的モジュール クラス プロパティです。
ソース:
- https://netbasal.com/the-need-for-speed-lazy-load-non-routable-modules-in-angular-30c8f1c33093 (Angular 8 までのルーティング不可能なモジュールの遅延ロード)
- https://herringtondarkholme.github.io/2018/02/19/angular-ivy/ (IVY プレビュー - セクションを参照
No NgFactory file anymore
) - https://blog.angularindepth.com/automatically-upgrade-lazy-loaded-angular-modules-for-ivy-e760872e6084 (Angular < 8 と Angular 8 での遅延読み込みの違いについて説明します。重要なセクション - NgModule から NgModuleFactory へのAOTコンパイラ、基本的に私の問題は何ですか)
angular - 関数式はデコレータでサポートされていません 関数式をエクスポートされた関数に変更することを検討してください
現在のプロジェクトで angularivy を有効にしようとしていますが、ng ビルド中にこのエラーが発生しました。
エクスポートで関数を作成して再度使用するなどの提案を確認しましたが、解決される代わりにエラーが変更されました。
エラーが解決した場合、正常にビルドされる可能性があります
angular - Angular 8+ (および Ivy 対応?) でのモジュールのプログラムによるロード
私のアプリケーションは、構成ファイル (XHR でロード) によって個別に定義された、動的に構成された一連の機能モジュール (それぞれに独自の追加ルートを持つ) をロードする必要があります。私の当初の計画は、モジュール文字列のリスト (「plugins/my.module#MyModule」など) を用意NgModuleFactoryLoader.load()
し、ブートストラップ中にそれらをロードするために使用することでした。
さて、私が実装を開始したとき、このコンテキストでは機能しない の形式をNgModuleFactoryLoader
支持して非推奨になっていることがわかりました(構成には文字列しかなく、モジュール参照はありません)。import()
LoadChildren
現在の(8+)Angularでこれをどのように実装できますか?