suchen

Heim  >  Fragen und Antworten  >  Hauptteil

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>
P粉001206492P粉001206492457 Tage vor433

Antworte allen(1)Ich werde antworten

  • P粉795311321

    P粉7953113212023-08-30 14:02:04

    问题是意外包含了babel-plugin-dynamic-import-node,它将动态导入(用于异步加载)转换为节点环境中的常规require,从而阻止生成任何异步块。解决方案是删除它(或仅在运行单元测试时包含它)。

    Antwort
    0
  • StornierenAntwort