지난번에 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"가 설치되어있다.
이걸 해결하기 위해서는
- @material-ui/core@4.12.4를 @types/react@"^18.2.45"를 종속성으로 필요하는 버전으로 업그레이드 시켜주거나,
- @types/react@"^18.2.45"를 @types/react@"^16.8.6 || ^17.0.0"로 바꿔주거나,
- 다 무시하고 강제로 설치하는 방법이 있다. 강제 설치 방법은 아래 둘 중 하나!
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
'코딩 > 코드국민 (진행중)' 카테고리의 다른 글
카테고리 분류하는 사이드바 만들어보기 (0) | 2024.03.05 |
---|---|
Git 에러 - fatal: The current branch feature/recommend has no upstream branch. (1) | 2024.03.03 |
code ECONNREFUSED 에러 해결 (0) | 2024.02.29 |