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 |
---|