코딩/코드국민 (진행중)

code ERESOLVE 에러 해결

연 동 2024. 3. 3. 15:04

지난번에 code ECONNREFUSED 에러를 고치고 나서 터진 문제

이 오류는 왜 나타나는지 GPT에게 물어봤다.

npm install 명령어를 실행하는 도중에 종속성 해결에 문제가 발생했습니다. 충돌하는 종속성이 있어 해결해야 합니다.

이 오류는 종속성 해결 과정에서 발생한 충돌로 인해 나타납니다. 일반적으로 다음과 같은 이유로 발생할 수 있습니다.
의존성 버전 충돌: 프로젝트에서 사용하는 패키지가 서로 다른 버전의 같은 종속성을 필요로 할 때 발생할 수 있습니다. 예를 들어, 하나의 패키지가 "@types/react@^16.8.6"을 필요로 하고 다른 패키지가 "@types/react@^17.0.0"을 필요로 할 때 충돌이 발생할 수 있습니다.피어 의존성 요구 사항 충돌: 프로젝트의 종속성이 다른 종속성의 피어 의존성을 요구하지만, 서로 다른 버전의 피어 의존성이 요구될 때 발생할 수 있습니다.해결할 수 없는 종속성 그래프: 종속성 그래프의 일부가 해결할 수 없는 경우에도 이러한 오류가 발생할 수 있습니다.
이러한 충돌은 종속성 버전을 수정하거나 npm의 해결 전략을 변경하여 해결할 수 있습니다. 위에 제시된 --force 또는 --legacy-peer-deps 옵션을 사용하여 npm 설치 명령어를 다시 실행하는 것은 일시적인 해결책일 수 있지만, 종속성 버전을 조정하여 충돌을 해결하는 것이 바람직합니다. 종속성을 수정하는 방법은 프로젝트의 요구사항과 구체적인 충돌에 따라 달라집니다.

-ChatGPT

 

 

그럼 내 상황에서 생각해보자

@material-ui/core@4.12.4는 @types/react@"^16.8.6 || ^17.0.0"을 종속성으로 필요하는데,

현재 우리 프로젝트에는 @types/react@"^18.2.45"가 설치되어있다.

이걸 해결하기 위해서는 

  1. @material-ui/core@4.12.4를 @types/react@"^18.2.45"를 종속성으로 필요하는 버전으로 업그레이드 시켜주거나,
  2. @types/react@"^18.2.45"를 @types/react@"^16.8.6 || ^17.0.0"로 바꿔주거나,
  3. 다 무시하고 강제로 설치하는 방법이 있다. 강제 설치 방법은 아래 둘 중 하나!
npm install --legacy-peer-deps  //피어 종속성 (peer dependency) 규칙 완화

또는

npm install --force		//경고 및 에러 무시

 

문제 해결 과정

먼저 1, 2번을 사용해서 해결하려고 했는데,

mui 공식 문서에서 확인해본 결과

1. material-ui/core의 최신 버전이 @4.12.4이므로 이 방법은 유효하지 않다.

2. 툴 하나 때문에 현재 진행되고 있는 프로젝트를 갈아엎을 수는 없으므로 이 방법을 실행하기엔 무리가 있다.

 

3. npm install --legacy-peer-deps를 사용해서 설치해보도록 하자

--legacy-peer-deps이란?

npm 공식 문서에서 확인해보자

 

-> npm 4~6에서는 호환되지 않는 종속성을 가지고 있더라도 설치를 할 수 있게 하였지만, 7 이후부터는 설치가 차단된다.

너가 문제였구나!

 

확인해보니 에러 메시지 하단부분에도 이런 메시지가 있었다.

정확하지 않고 오류 발생 가능하더라도 일단 설치를 해준다는 말이다!

 

문제 해결

npm install --legacy-peer-deps

 

이로써 설치는 모두 완료되었다!

 

 

다음화 예고

움 역시나 mui/system에서 오류가 나는데 이를 어떻게 해야할까 고민!

728x90