Kaedah penyahpepijatan untuk pemisahan kod webpack menggunakan React.lazy
P粉001206492
P粉001206492 2023-08-29 16:07:28
0
1
361

Saya menggunakan React.lazy untuk mencuba dan memisahkan beberapa kod daripada apl utama saya tetapi ia tidak berfungsi seperti yang saya harapkan dan saya mengalami kesukaran untuk memikirkan cara untuk nyahpepijat ia.

Kod saya kira-kira seperti berikut:

// index.js import React daripada 'react'; import { LibraryUtils } daripada './library/utils'; const Component = React.lazy(() =>import('./component')); ... // component.js import React daripada 'react'; import LibraryComponent daripada './library/component'; ... 

Apa yang saya mahu ialah:

  • vendor.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, vendors.chunk.js
  • Ketulan tak segerak: main-1.chunk.js, library-1.chunk.js

Apa yang saya dapat ialah:

  • vendor.chunk.js:react
  • main.chunk.js:index.js + component.js
  • library.chunk.js:library/utils + library/component
  • index.html: main.chunk.js, library.chunk.js, vendors.chunk.js
  • Blok async: Tiada

Akibatnya, pemuatan halaman awal saya memerlukan pemuatan semua JS, mengakibatkan prestasi buruk.

Bagaimanakah cara saya memaksa pek web untuk membahagikan perpustakaan kepada beberapa bahagian supaya saya boleh memanfaatkan ketulan tak segerak? Lebih baik lagi, bagaimana saya menyahpepijat masalah seperti ini?

Konfigurasi saya kira-kira seperti berikut:

splitChunks: { ketulan: 'semua', cacheGroups: { perpustakaan: { ujian: /[\/]perpustakaan[\/]/, }, }, }

P粉001206492
P粉001206492

membalas semua (1)
P粉795311321

Masalahnya ialah kemasukanbabel-plugin-dynamic-import-nodeyang tidak dijangka, yang menukar import dinamik (digunakan untuk pemuatan async) kepada keperluan biasa dalam persekitaran nod, menghalang sebarang blok async daripada dijana. Penyelesaiannya adalah untuk mengeluarkannya (atau hanya memasukkannya semasa menjalankan ujian unit).

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!