React.lazy
を使用してメイン アプリケーションからコードを分割しようとしていますが、期待どおりに動作せず、方法を理解するのに苦労しています。それをデバッグします。
私のコードはおおよそ次のとおりです。
//index.js 「react」から React をインポートします。 import { LibraryUtils } から './library/utils'; const Component = React.lazy(() => import('./component')); ... // コンポーネント.js 「react」から React をインポートします。 LibraryComponent を './library/component' からインポートします。 ...
私が欲しいのは:
私が得たものは次のとおりです:
その結果、最初のページの読み込みではすべての JS を読み込む必要があり、パフォーマンスが低下しました。
非同期チャンクを利用できるように、webpack で library
を複数のチャンクに強制的に分割するにはどうすればよいですか?さらに良いことに、このような問題をデバッグするにはどうすればよいでしょうか?
私の構成はおおよそ次のとおりです。
splitChunks: { チャンク: 'すべて'、 キャッシュグループ: { 図書館: { テスト: /[\\/]ライブラリ[\\/]/, }、 }、 }
問題は、
babel-plugin-dynamic-import-node
が予期せず含まれていることです。これは、動的インポート (非同期読み込み用) をノード環境内で通常の require に変換し、非同期ブロックが生成されないようにします。 。解決策は、これを削除することです (または、単体テストの実行時にのみ含めます)。