Webpackは、動的インポート用にECMAScript proposalに準拠するimport()構文をサポートしています。この構文は、モジュールを非同期にロードすることを約束します。ダイナミックモジュールとそのすべての依存関係がロードされたときを検出するにはどうすればよいですか?
問題は、モジュールの依存関係がロードされるのを待つことなく、特定のモジュールがロードされるとすぐに解決されるということです(JS & CSSを含むあらゆる種類のアセットが可能です)。
例コード:
import('./myModule.js').then(myModule => {
myModule.sayHello(); // This will be called before someCSS.css has been loaded
});
myModule.js
import './someCSS.css'; // <-- I need to know when this is loaded (there can be more than one asset)
export default class myModule {
sayHello() {
alert('Hello!');
}
}
モジュール、および関連するすべての資産は、ロードされたとき、どのように私は検出することができますか?非同期アセットのonload
イベントのようなものはありますか?
スクリプトは関係なく、その依存関係の、ロードされたときの約束が解決されています
CSSStyleSheet
オブジェクトを使用すると、その反対チェックする約束を作成できるようにスタイルシートは、ロードされた一度だけcssRules
プロパティが含まれます。詳細については、私の更新を参照してください。 –@ YoavKadoshあなたは設計上問題があります。子モジュールの依存関係です。親モジュールはそれらに頼るべきではありません。これらの依存関係が必要な場合は、親モジュールもそれらの依存関係をインポートする必要があります。 – estus
親モジュールでは不要です。私は彼らがスピナーを隠すためにいつ利用可能であるかを知る必要があります。 –