Gunakan vite/rollup.js untuk melanjutkan modul os Node.js
P粉176151589
2023-08-24 16:17:55
<p>Saya sedang mengusahakan projek Vite yang menggunakan pakej <code>opensea-js</code> Pakej ini bergantung pada <code>xhr2-cookies</code>, yang mengimport <code>os</code>, <code>http</code>, <code>https</code> modul nod dalaman. </p>
<p>Apabila saya cuba memanggil mana-mana kaedah opensea, saya mendapat ralat berikut: </p>
<pre class="brush:php;toolbar:false;">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</pre>
<p>Jejaki ralat ini dan ketahui bahawa ia datang daripada membina rentetan ejen pengguna. </p>
<p>Saya cuba memasang <code>rollup-plugin-polyfill-node</code> dan menambahkannya pada <code>vite.config.js</code> p>
<pre class="brush:php;toolbar:false;">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(),
],
},
},
})</pre>
<p>Saya juga cuba membaiki fail secara manual menggunakan <code>patch-package</code> yang menyelesaikan ralat <kod>os</kod> poliisi<kod>http</kod>/<kod>https</kod> </p>
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 dalam artikel pendek.