npm의존성
npm ERESOLVE 의존성 충돌 해결 — could not resolve dependency
npm error code ERESOLVE / Could not resolve dependency: peer ...
한 줄 해결: npm 7+ 가 peer dependency 버전 충돌을 엄격히 막아 설치가 중단된 것으로, 충돌 원인을 확인한 뒤 --legacy-peer-deps 또는 버전 정렬로 해결합니다.
이런 증상일 때
npm install 실행 시 설치가 멈추고 "could not resolve dependency"와 함께 어떤 패키지의 peer 요구 버전이 현재 설치본과 맞지 않는다는 트리가 출력됩니다. npm 7 이상에서 peer dependency 자동 설치가 엄격해지며 흔해졌습니다.
원인
- A 패키지가 요구하는 peer 버전(예: react@^18)과 실제 설치된 버전(예: react@19)이 불일치
- npm 7+ 가 peer dependency 충돌을 경고가 아니라 오류로 처리(npm 6 까지는 무시했음)
- package-lock.json 에 박제된 과거 버전과 package.json 의 새 버전이 어긋남
해결 방법
1
충돌 트리부터 읽기
ERESOLVE 메시지의 "Found: / Could not resolve" 블록이 어떤 패키지가 무엇을 요구하는지 알려줍니다. 근본 해결은 그 버전을 맞추는 것입니다.
npm install <패키지>@<요구버전>2
임시 우회 — legacy-peer-deps
npm 6 처럼 peer 충돌을 무시하고 설치합니다. 빠르지만 런타임 비호환 위험이 남으므로 임시책입니다.
npm install --legacy-peer-deps3
lockfile 재생성
lock 파일과 node_modules 를 지우고 다시 설치하면 박제된 충돌이 풀립니다.
rm -rf node_modules package-lock.json && npm install💡 예방: 의존성을 한꺼번에 올리지 말고 메이저 버전업은 peer 요구사항을 먼저 확인하세요. --legacy-peer-deps 를 .npmrc 에 영구 박아두면 진짜 충돌을 못 보게 되니 피하세요.
npmERESOLVE의존성peer dependencypackage-lock