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
367

J'utilise React.lazy 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.

Mon code est à peu près le suivant :

// 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' ; ... 

Ce que je veux, c'est :

  • vendors.chunk.js:react
  • main.chunk.js:index.js
  • main-1.chunk.js:component.js
  • library-0.chunk.js:library/utils
  • library-1.chunk.js:library/component
  • index.html : main.chunk.js, library-0.chunk.js, sellers.chunk.js
  • Blocs asynchrones : main-1.chunk.js, library-1.chunk.js

Ce que j'obtiens est :

  • vendors.chunk.js:react
  • main.chunk.js:index.js + composant.js
  • library.chunk.js:library/utils + library/component
  • index.html : main.chunk.js, library.chunk.js, sellers.chunk.js
  • Blocs asynchrones : aucun

En conséquence, le chargement initial de ma page nécessite le chargement de tout le JS, ce qui entraîne de mauvaises performances.

Comment forcer Webpack à diviser la library en plusieurs morceaux afin de pouvoir profiter des morceaux asynchrones ? Mieux encore, comment déboguer un problème comme celui-ci ?

Ma configuration est à peu près la suivante :

splitChunks : { morceaux : 'tous', Groupes de cache : { bibliothèque: { test : /[\/]bibliothèque[\/]/, }, }, }

P粉001206492
P粉001206492

répondre à tous (1)
P粉795311321

Le problème est l'inclusion inattendue debabel-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
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!