React Native에서 caver-js 사용 질문

Metro has encountered an error: While trying to resolve module ipfs-http-client from file ../node_modules/caver-js/packages/caver-ipfs/src/index.js, the package ../node_modules/ipfs-http-client/package.json was successfully found. However, this package itself specifies a main module field that could not be resolved (../node_modules/ipfs-http-client/index. Indeed, none of these files exist:

리액트 네이티브에서 caver-js를 추가하고 사용하려고 하면 위와 같은 에러가 발생합니다. 해결 방법이 있을까요?

안녕하세요 npm으로 ipfs-http-client 모듈을 한번 설치해보시겠어요?

안녕하세요, 답변 감사드립니다.

ipfs-http-client를 따로 설치를 하고 진행해봐도 같은 에러가 발생합니다. 다른 방법이 혹시 있을까요?

테스트 하고 있는 깃 주소 입니다.

현재 사용하시는 ipfs-http-client는 ^59.0.0로 되어 있고,
caver-js 에서는 ipfs-http-client는 ^57.0.3으로 되어 있어서 충돌이 나는 것 같습니다.
혹시 테스트 하시는 앱에서 버전을 낮춰서 시도해 보실 수는 없을까요?

안녕하세요, 테스트하는 앱(GitHub - dewey-krosslab/testApp)
에서 ipfs-http-client@57.0.3 으로 적용하고 시도해 보아도 같은 에러가 발생하는것 같습니다.

현재 상황은

  1. 개발앱 package에서 ipfs-http-client 를 사용하지 않고 caver-js만 설정.

caver-js에서 설정된 ipfs-http-client ^57.0.3 로 설치되고 위 에러가 발생

  1. 개발앱 package에 ipfs-http-client^59.0.0 를 사용하도록 설정

같은 에러가 발생

  1. 개발앱 package에 ipfs-http-client^57.0.3을 사용하도록 설정

같은 에러가 발생

혹시 아래 링크가 도움이 될 수 있을지 문의 드립니다.

아래와 같은조건에서 동일한 이슈 확인 후, 수정하여 caver-js 동작하는것 확인했습니다.

“react”: “18.1.0”,
“react-native”: “0.70.6”,

수정

  1. node_modules/caver-js/packages/caver-ipfs/src/index.js 에 아래와 같이 수정
    await import('ipfs-http-client')await import('ipfs-http-client/dist/index.min.js')

  2. dev dependencies 추가
    npm i -D jetifier rn-nodeify

  3. package.json에서 scripts 추가(or 추가된 것 확인)
    "postinstall": "jetifier rn-nodeify --install --hack",

  4. npm i

참고할 레포

확인 부탁 드립니다.

1 Like

확인 감사합니다. 시도해보도록 하겠습니다! :grinning:

안녕하세요, 추천해주신 방법으로 에러 해결되었습니다
감사합니다.
그런데 해당 페키지를 직접 수정하는것이라 노드모듈이 초기화되면서 적용한 부분이 사라지고 있는데
해결하려면 포크를 떠서 사용해야 할것 같은데 혹시 이부분이 업데이트 될 예정일까요?

1 Like

네 빠른시일내에 업데이트 할수있도록 하겠습니다.

1 Like

caver-js 모듈을 복사해서 root 폴도에 넣고 package.json에서 이런식으로 수정해보세요
“caver-js”: “file:./{customPackageInRootFolder}/caver-js”,