Node.js의 os 모듈을 확장하려면 vite/rollup.js를 사용하세요.
P粉176151589
2023-08-24 16:17:55
<p>저는 <code>opensea-js</code> 패키지를 사용하는 Vite 프로젝트를 진행하고 있습니다. 이 패키지는 <code>os</code>, <code>http</code>, <code>https</code> 등을 가져오는 <code>xhr2-cookies</code>에 의존합니다. 내부 노드 모듈. </p>
<p>opensea 메소드를 호출하려고 하면 다음 오류가 발생합니다: </p>
<pre class="brush:php;toolbar:false;">잡히지 않음(약속 중) TypeError: os.type은 함수가 아닙니다.
XMLHttpRequest2 xml-http-request.ts:102
prepareRequest httpprovider.js:61
sendAsync httpprovider.js:116
node_modules opensea-js.js:24209</pre>
<p>이 오류를 추적하여 사용자 에이전트 문자열 작성에서 발생한 오류인지 확인하세요. </p>
<p><code>rollup-plugin-polyfill-node</code>를 설치하고 <code>vite.config.js</code>에 추가하려고 했지만 여전히 같은 오류가 발생합니다. < ;/ p>
<pre class="brush:php;toolbar:false;">'path'에서 경로 가져오기
'@vitejs/plugin-vue'에서 vue 가져오기
'rollup-plugin-polyfill-node'에서 nodePolyfill 가져오기
'vite'에서 { 정의 구성 } 가져오기
// https://vitejs.dev/config/
기본 정의 구성 내보내기({
플러그인: [vue()],
해결하다: {
별칭: {
'@': path.resolve(__dirname, 'src'),
},
},
서버: {
포트: 8080,
},
정의하다: {
'process.env': {},
},
짓다: {
롤업옵션: {
플러그인: [
노드폴리필(),
],
},
},
})</pre>
<p>또한 <code>os</code> 오류를 해결한 <code>patch-package</code>를 사용하여 파일을 수동으로 복구하려고 시도했지만 요청을 보내려고 할 때 실패했습니다. 폴리필<code>http</code>/<code>https</code> 모듈). </p>
저는 이 문제를 해결하기 위해
으아악rollup-plugin-polyfill-node
를 사용했습니다.Fabiano의 답변을 기반으로 한 보다 완벽한 솔루션은 다음과 같습니다.
으아악내 프로젝트에서는 문제를 해결하기 위해 다음 구성을 사용했습니다. 짧은 기사에서 솔루션을 설명합니다.
으아악