Saya sedang mengusahakan projek Vite yang menggunakan pakej opensea-js
Pakej ini bergantung pada xhr2-cookies
, yang mengimport os
, http
, https
modul nod dalaman.
Apabila saya cuba memanggil mana-mana kaedah opensea, saya mendapat ralat berikut:
Tidak ditangkap (dalam janji) TypeError: os.type bukan fungsi XMLHttpRequest2 xml-http-request.ts:102 prepareRequest httpprovider.js:61 sendAsync httpprovider.js:116 node_modules opensea-js.js:24209
Jejaki ralat ini dan ketahui bahawa ia datang daripada membina rentetan ejen pengguna.
Saya cuba memasang rollup-plugin-polyfill-node
dan menambahkannya pada vite.config.js
p>
import laluan daripada 'path' import vue daripada '@vitejs/plugin-vue' import nodePolyfills daripada 'rollup-plugin-polyfill-node' import { defineConfig } daripada 'vite' // https://vitejs.dev/config/ eksport defineConfig lalai ({ pemalam: [vue()], selesaikan: { alias: { '@': path.resolve(__dirname, 'src'), }, }, pelayan: { pelabuhan: 8080, }, takrifkan: { 'process.env': {}, }, bina: { rollupOptions: { pemalam: [ nodePolyfills(), ], }, }, })
Saya juga cuba membaiki fail secara manual menggunakan patch-package
yang menyelesaikan ralat
Saya menggunakan
rollup-plugin-polyfill-node
untuk menyelesaikan masalah ini.Berikut adalah penyelesaian yang lebih lengkap berdasarkan jawapan Fabiano:
Dalam projek saya, saya menggunakan konfigurasi berikut untuk menyelesaikan masalah. Saya menerangkan penyelesaiannya dalamartikel pendek.