Debugging-Methode für die Webpack-Codeaufteilung mithilfe von React.lazy
<p>Ich verwende <code>React.lazy</code>, um zu versuchen, Code aus meiner Haupt-App aufzuteilen, aber es funktioniert nicht wie erwartet und es fällt mir schwer, herauszufinden, wie das geht Debuggen Sie es. </p>
<p>Mein Code sieht ungefähr wie folgt aus:</p>
<pre class="brush:php;toolbar:false;">// index.js
import React aus 'react';
import { LibraryUtils } aus './library/utils';
const Component = React.lazy(() => import('./component'));
...
// Komponente.js
import React aus 'react';
importiere LibraryComponent aus './library/component';
...</pre>
<p>Was ich will ist:</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, Vendors.chunk.js</li>
<li>Asynchrone Chunks: main-1.chunk.js, Library-1.chunk.js</li>
</ul>
<p>Was ich bekomme, ist: </p>
<ul>
<li>vendors.chunk.js:react</li>
<li>main.chunk.js:index.js + Component.js</li>
<li>library.chunk.js:library/utils +library/component</li>
<li>index.html: main.chunk.js, Library.chunk.js, Vendors.chunk.js</li>
<li>Asynchrone Blöcke: Keine</li>
</ul>
<p>Aus diesem Grund muss beim ersten Laden meiner Seite das gesamte JS geladen werden, was zu einer schlechten Leistung führt. </p>
<p>Wie erzwinge ich, dass das Webpack die <code>library</code> in mehrere Blöcke aufteilt, damit ich die Vorteile asynchroner Blöcke nutzen kann? Besser noch: Wie behebe ich ein Problem wie dieses? </p>
<p>Meine Konfiguration sieht ungefähr wie folgt aus:</p>
<pre class="brush:php;toolbar:false;">splitChunks: {
chunks: 'alle',
CacheGruppen: {
Bibliothek: {
test: /[\/]library[\/]/,
},
},
}</pre></p>