FE/React

npm install --legacy-peer-deps

baek-dev 2025. 5. 23. 13:21

npm install --legacy-peer-deps 옵션은 npm v7 이상에서 발생하는 peer dependency 충돌을 우회하기 위한 설정임.


npm install --legacy-peer-deps 기본값으로 설정하기


1. 배경 설명

npm 버전 7부터는 peerDependencies를 자동으로 설치하면서 충돌을 강하게 검사하게 되었음.
이전 버전에서는 단순히 경고만 표시하고 설치를 계속했지만,
npm 7+ 에서는 peerDependencies 충돌이 있으면 설치가 실패하게 되었음.

예시 오류:

ERESOLVE unable to resolve dependency tree

해결 방법:

npm install --legacy-peer-deps

→ 이전 방식처럼 peer dependencies 충돌을 무시하고 설치를 강행함


2. 매번 --legacy-peer-deps 를 입력하지 않고 기본 설정으로 만드는 방법

npm config 명령어 또는 .npmrc 설정 파일을 사용하면 기본값처럼 설정 가능함.

① CLI로 설정 (전역)

npm config set legacy-peer-deps true
  • 모든 npm install 시 자동으로 --legacy-peer-deps 옵션이 적용됨
  • 적용 범위: 현재 사용자 계정 전체

설정 확인:

npm config get legacy-peer-deps

② .npmrc 파일에 직접 작성

프로젝트 루트에 .npmrc 파일 생성 또는 수정:

legacy-peer-deps=true
  • 이 설정은 해당 프로젝트 디렉토리에만 적용됨
  • 팀 프로젝트에서는 .npmrc를 같이 버전 관리에 포함시킬 수 있음

3. 설정 적용 이후 효과

  • npm install 만 입력해도 자동으로 peerDeps 오류를 무시하고 설치를 진행함
  • 예전처럼 의존성 충돌을 무시하고 패키지를 설치할 수 있음

4. 주의사항

항목 설명
근본적 해결은 아님 충돌된 의존성 문제는 해결되지 않은 상태로 설치됨
장기적으로는 권장되지 않음 라이브러리 간 버전 불일치로 런타임 오류 발생 가능
대규모 프로젝트에서는 신중하게 사용 package.json과 package-lock.json 의 일관성 유지 필요

정리

npm 7 이상에서는 peer dependency 충돌 시 설치가 중단되는 문제가 발생할 수 있음.
이를 우회하기 위해 --legacy-peer-deps 옵션을 자주 사용하는데,
매번 입력하지 않고 기본값으로 적용하려면 다음과 같이 설정함:

  • 전역: npm config set legacy-peer-deps true
  • 프로젝트: .npmrc → legacy-peer-deps=true

이 설정은 의존성 충돌을 무시하고 설치를 강행하는 편의성 도구일 뿐,
장기적인 해법은 아니라는 점에 유의해야 함.

 

 

 

 

출처 : ChatGPT

'FE > React' 카테고리의 다른 글

[React] useEffect, useState  (0) 2025.02.13