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:
Apa yang saya dapat ialah:
Akibatnya, pemuatan halaman awal saya memerlukan pemuatan semua JS, mengakibatkan prestasi buruk.
Bagaimanakah cara saya memaksa pek web untuk membahagikan
Konfigurasi saya kira-kira seperti berikut:
splitChunks: { ketulan: 'semua', cacheGroups: { perpustakaan: { ujian: /[\/]perpustakaan[\/]/, }, }, }
Masalahnya ialah kemasukan
babel-plugin-dynamic-import-node
yang 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).