인프런 커뮤니티 질문&답변

Mr. Tai님의 프로필 이미지
Mr. Tai

작성한 질문수

Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습

계정 인증 로직 (keystore validation)

npm run dev 후에 caver-js 에러 해결

작성

·

421

0

ERROR in ./node_modules/caver-js/packages/caver-ipfs/src/index.js Module not found: Error: Can't resolve 'fs' in 'C:\Users\user\Desktop\sidejobs\klaytn1\addition-game-starter\node_modules\caver-js\packages\caver-ipfs\src' @ ./node_modules/caver-js/packages/caver-ipfs/src/index.js 21:11-24 @ ./node_modules/caver-js/packages sync ^\.\/.*\/src\/index\.js$ @ ./node_modules/caver-js/index.js @ ./src/index.js @ multi (webpack)-dev-server/client?http://localhost:8080 ./src/index.js

1.에러가 발생한다 뭐가 문제인가?

2.로그를 보니 caver-js 가 어쩌고 저쩌고 fs 가 어쩌고 하면서 문제가 발생한다.

3. 아마도 기존에 설치된 것들과의 버전 호환 문제가 아닌가 싶었다

4. 모르겠고 그냥 caver 다시 설치해보자 싶었다

5. npm install caver-js 하고 엔터를 갈긴다
6. 잘된다.

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

작성자님께서 npm run dev 후에 발생한 caver-js 에러는 fs 모듈을 찾을 수 없다는 에러로 보입니다. 이 에러는 브라우저 환경에서는 실행되지 않는 노드의 내장 모듈이기 때문입니다.

해결책으로는 caver-ipfs 모듈에서 fs 모듈을 사용하지 않도록 설정하는 것이 있습니다. 모듈의 코드를 열어보셔서 fs 모듈을 사용하는 부분을 찾아봐야 합니다. 만약 fs 모듈을 사용하지 않아도 되는 경우, require(‘fs’) 부분을 아래와 같이 수정해보세요.

if (process.browser) {
  // 브라우저 환경에서 코드 실행
} else {
  // 노드 환경에서 코드 실행
}

만약 fs 모듈을 반드시 사용해야 하는 경우, caver-ipfs 모듈을 브라우저에서 사용할 수 있도록 webpack과 같은 번들러를 사용해야 합니다. webpack은 노드 환경에서 기본적으로 사용할 수 없는 브라우저 모듈들을 번들링하여 브라우저에서 사용 가능하게 해줍니다.

이 외에도, caver-js의 버전 호환 문제일 가능성도 있으니, npm install caver-js 명령어로 업데이트를 시도하신 것이 적절한 조치였습니다.

해결되었기를 바랍니다. 감사합니다.

Mr. Tai님의 프로필 이미지
Mr. Tai

작성한 질문수

질문하기