Méthode de débogage pour le fractionnement du code du webpack à l'aide de React.lazy
P粉001206492
P粉001206492 2023-08-29 16:07:28
0
1
447
<p>J'utilise <code>React.lazy</code> pour essayer de séparer du code de mon application principale, mais cela ne fonctionne pas comme prévu et j'ai du mal à comprendre comment le faire. déboguez-le. </p> <p>Mon code est à peu près le suivant :</p> <pre class="brush:php;toolbar:false;">// index.js importer React depuis « react » ; importer { LibraryUtils } depuis './library/utils' ; const Component = React.lazy(() => import('./component')); ... // composant.js importer React depuis « react » ; importer LibraryComponent depuis './library/component' ; ...</pré> <p>Ce que je veux, c'est :</p> <ul> <li>vendors.chunk.js:react</li> <li>main.chunk.js:index.js</li> <li>main-1.chunk.js:component.js</li> <li>library-0.chunk.js:library/utils</li> <li>library-1.chunk.js:library/component</li> <li>index.html : main.chunk.js, library-0.chunk.js, sellers.chunk.js</li> <li>Blocs asynchrones : main-1.chunk.js, library-1.chunk.js</li> </ul> <p>Ce que j'obtiens est : </p> <ul> <li>vendors.chunk.js:react</li> <li>main.chunk.js:index.js + composant.js</li> <li>library.chunk.js:library/utils + library/component</li> <li>index.html : main.chunk.js, library.chunk.js, sellers.chunk.js</li> <li>Blocs asynchrones : aucun</li> </ul> <p>En conséquence, le chargement initial de ma page nécessite le chargement de tout le JS, ce qui entraîne de mauvaises performances. </p> <p>Comment forcer Webpack à diviser la <code>library</code> en plusieurs morceaux afin de pouvoir profiter des morceaux asynchrones ? Mieux encore, comment déboguer un problème comme celui-ci ? </p> <p>Ma configuration est à peu près la suivante :</p> <pre class="brush:php;toolbar:false;">splitChunks : { morceaux : 'tous', Groupes de cache : { bibliothèque: { test : /[\/]bibliothèque[\/]/, }, }, }</pre></p>
P粉001206492
P粉001206492

répondre à tous(1)
P粉795311321

Le problème est l'inclusion inattendue de babel-plugin-dynamic-import-node, qui convertit les importations dynamiques (utilisées pour le chargement asynchrone) en exigences régulières dans l'environnement de nœud, empêchant la génération de blocs asynchrones. La solution est de le supprimer (ou de l'inclure uniquement lors de l'exécution de tests unitaires).

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal