Kaedah Nuxt untuk mengelak mengimport skrip pihak klien apabila dipaparkan pada bahagian pelayan
P粉518799557
P粉518799557 2024-01-04 09:57:53
0
1
428

Dalam aplikasi nuxt.js saya, saya mempunyai skrip yang mengimport pakej NPM yang hanya serasi dengan konteks penyemak imbas (ia merujuk documentlocationwindow dll.)

Adakah terdapat cara untuk mengecualikannya daripada SSR?

import thing from "@vendor/thing"; // causes `document not defined` error
export default showThing(){
 if (process.client) {
    thing();
 }
}

Saya boleh menggunakan kaedah process.client tetapi fail masih diimport ke dalam komponen saya.

P粉518799557
P粉518799557

membalas semua(1)
P粉426906369

Anda boleh mengimportnya secara dinamik dan bukannya mengimportnya dalam setiap konteks.

Seperti yang dijelaskan dalam jawapan saya di sini: https://stackoverflow.com/a/67825061/8816585

Dalam contoh anda, ia akan kelihatan seperti ini

export default showThing(){
  if (process.client) {
    const thing = await import('@vendor/thing')
    thing()
  }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan