TechFeedTechFeed
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-deps
3
lockfile 재생성

lock 파일과 node_modules 를 지우고 다시 설치하면 박제된 충돌이 풀립니다.

rm -rf node_modules package-lock.json && npm install
💡 예방: 의존성을 한꺼번에 올리지 말고 메이저 버전업은 peer 요구사항을 먼저 확인하세요. --legacy-peer-deps 를 .npmrc 에 영구 박아두면 진짜 충돌을 못 보게 되니 피하세요.
npmERESOLVE의존성peer dependencypackage-lock

관련 에러

관련 가이드

pnpm vs npm vs Yarn Berry 2026 — JavaScript 패키지 매니저 속도·디스크·워크스페이스 실전 비교Supply Chain 공격 방어 가이드 — npm, pip, 컨테이너 보안Claude Code 소스코드 유출 사건 — npm 소스맵 실수로 51만 줄 노출, 공급망 보안까지 흔들렸다오픈소스 릴리즈 체크리스트 — npm·PyPI·GitHub 배포 전 놓치면 후회하는 38개 항목