본문 바로가기
Frontend/React

패키지 의존성 충돌 버전 에러 해결 ERESOLVE unable to resolve dependency tree

by 디스코비스킷 2023. 12. 15.
반응형

에러 원인

redux-actions을 설치하고 npm run dev를 했는데

'vite'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.

이런 오류가 떠서 yarn.lock과 pakage-lock.json 파일을 삭제해주고
npm install을 했는데 뜬 오류다.

(redux-actions를 설치했는데 왜 redux-devtools-extension과 redux의 버전충돌이 이제서야 뜨는건지 모르겠다.. )

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: react-redux-tutorial@0.0.0
npm ERR! Found: redux@5.0.0
npm ERR! node_modules/redux
npm ERR!   redux@"^5.0.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer redux@"^3.1.0 || ^4.0.0" from redux-devtools-extension@2.13.9
npm ERR! node_modules/redux-devtools-extension
npm ERR!   redux-devtools-extension@"^2.13.9" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! C:\Users\user\AppData\Local\npm-cache\_logs\2023-12-15T07_07_13_148Z-eresolve-report.txt

오류 내용에서 가장 눈에 띄는건 peer redux@"^3.1.0 || ^4.0.0" from redux-devtools-extension@2.13.9인데

이 뜻은 다음과 같다.

이 에러 메시지에서 말하고 있는 것은 redux-devtools-extension 패키지가 redux 패키지의 특정 버전에 의존하고 있는데, 그 버전이 ^3.1.0 || ^4.0.0와 같이 지정되어 있습니다.

여기서 ^3.1.0 || ^4.0.0는 Semantic Versioning(SemVer)을 따르는 버전 범위를 나타냅니다. 이 표현은 다음과 같이 해석됩니다:

  • ^3.1.0: 3.1.0 버전부터 4.0.0 미만의 모든 버전을 포함합니다.
  • ||: 또는을 의미하며, 앞쪽 또는 뒤쪽의 범위 중 하나를 만족시키는 버전을 사용할 수 있음을 나타냅니다.
  • ^4.0.0: 4.0.0 버전부터 5.0.0 미만의 모든 버전을 포함합니다.

이 의미는 redux-devtools-extension이 3.1.0 버전 이상이면서 5.0.0 미만인 redux 패키지와 함께 동작할 것으로 예상되어 있습니다.

해결방법

→ redux 를 *^4.0.0 버전으로 설치하니까 됨. *

pakage.json에서 "redux": "^4.0.0", 로 수정 후 npm install -force

관련 에러 chatGPT 답변

이 오류는 react-redux 패키지의 의존성 해결 과정에서 redux 패키지와 관련된 버전 충돌이 발생했음을 나타냅니다. 여러 해결 방법이 있을 수 있으며, 다음 중 하나를 시도해 볼 수 있습니다:

  1. -force 또는 --legacy-peer-deps 사용:
    • 터미널에서 다음 명령어를 실행하여 npm install을 강제로 진행합니다.또는이는 의존성 충돌을 무시하고 설치를 진행하는 방법입니다. 그러나 이는 종종 예상치 못한 문제를 일으킬 수 있으므로 주의가 필요합니다.
    • npm install --legacy-peer-deps
    • npm install --force
  2. 버전 조정:
    • package.json 파일에서 reduxreact-redux 패키지의 버전을 조정합니다.그리고 나서 npm install 명령어를 실행하여 의존성을 업데이트합니다.
    • "dependencies": { "redux": "^4.2.1", "react-redux": "^9.0.2", "redux-devtools-extension": "^2.13.9" }
  3. 의존성 트리 재설치:
    • npm은 종속성 트리를 재설치하도록 하는 명령어를 제공합니다. 터미널에서 프로젝트 디렉토리로 이동한 후 npm install 명령어를 실행합니다.
    • npm install
  4. npm 패키지 캐시 제거:
    • 이미 언급한대로 npm 패키지 캐시를 제거하고 다시 설치해보세요.
    • npm cache clean --force npm install
  5. npm audit fix 사용:
    • 터미널에서 npm audit fix 명령어를 실행하여 보안 취약점을 수정하고 의존성을 최신 상태로 유지합니다.
    • npm audit fix

위의 단계 중 하나를 시도한 후에도 문제가 계속된다면, react-reduxredux-devtools-extension 패키지의 GitHub 저장소나 이슈 트래커에서 관련 정보를 확인하고 추가적인 조치를 취할 수 있습니다.

반응형

최근댓글

최근글

© Copyright 2023 jngmnj