Ich arbeite an einem Vite-Projekt, das das Paket opensea-js
verwendet. Dieses Paket hängt von xhr2-cookies
ab, das os
, http
, https
importiert interne Knotenmodule.
Wenn ich versuche, eine Opensea-Methode aufzurufen, erhalte ich die folgende Fehlermeldung:
Uncaught (in Versprechen) TypeError: os.type ist keine Funktion XMLHttpRequest2 xml-http-request.ts:102 PrepareRequest httpprovider.js:61 sendAsync httpprovider.js:116 node_modules opensea-js.js:24209
Verfolgen Sie diesen Fehler und stellen Sie fest, dass er vom Erstellen der Benutzeragentenzeichenfolge herrührt.
Ich habe versucht, rollup-plugin-polyfill-node
zu installieren und es zu vite.config.js
hinzuzufügen, aber ich erhalte immer noch die gleiche Fehlermeldung: p>
Pfad aus „Pfad“ importieren vue aus „@vitejs/plugin-vue“ importieren NodePolyfills aus „rollup-plugin-polyfill-node“ importieren importiere { defineConfig } aus 'vite' // https://vitejs.dev/config/ Standard exportieren defineConfig({ Plugins: [vue()], lösen: { alias: { '@': path.resolve(__dirname, 'src'), }, }, Server: { Port: 8080, }, definieren: { 'process.env': {}, }, bauen: { rollupOptions: { Plugins: [ nodePolyfills(), ], }, }, })
Ich habe auch versucht, die Datei manuell mit patch-package
zu reparieren, was den os
-Fehler behoben hat, aber beim Versuch, die Anfrage zu senden, ist es fehlgeschlagen polyfillhttp
/https
我使用了
rollup-plugin-polyfill-node
来解决这个问题。这是基于Fabiano的答案的更完整的解决方案:
在我的项目中,我使用了以下配置来解决问题。我在一篇简短的文章中描述了解决方案。