LoGin
article thumbnail
반응형

사건

npm을 사용해서 패키지 모듈을 관리하다 보면 수많은 버전들이 만나게 되는데 그때 호환되는 버전도 많지만 충돌이 일어나는 버전도 수도록 많습니다.

 

api, install를 하다 보면 나오는 버전충돌 에러입니다. expo-camera@7.x.x 버전을 사용해야 해결해 줄 것 같네요.

버전 관리하는데 에러가 뜬다는 것은 분명 실행해도 문제가 난다는 것인데 그래도 그냥 실행해보고 싶은 마음입니다.

 

 

버전 충돌 해결방법

  • peer dependencies를 살펴보고, 호환되는 버전을 맞춰서 설치하는 것이 일방적이고

 

  • 강제로 설치할 수 있는 --force 속성
npm install modulName --force

 

 

node.js, react, native 모듈 정리 및 제거 편하게 하기

프로젝트를 하다 보면 npm install @ ... 이런저런 npm package를 많이 설치하는데 내가 필요해서 설치한 건 뭐고 프로젝트에 필요 없는 건 뭐고, 구분할 순 있겠지만 정말 번거롭습니다. 그럴 때는 prune

loginshin.tistory.com

↑↑ npm 공식사이트 잘 확인해서 요즘도 사용하는지 체크할 것↑↑

 

그리고

npm install --legacy-peer-deps

dependencies 충돌을 자동 해결하는 방법도 있습니다.

 

같은 일을 하는 것처럼 보이지만 하는 일이 다릅니다.

 

 

 

 

차이점

npm install --legacy-peer-deps: 옵션은 npm 7 이상에서 사용가능하며, peer dependencies 충돌을 자동으로 해결합니다. 즉, npm i패키지의 peer dependencies를 확인하지 않고 설치를 진행하게 됩니다.

이로 인해 일부 패키지가 호환되지 않는 버전으로 설치될 수 있으므로 주의가 필요합니다.

 

 

npm install --force: 이 옵션은 npm이 종속성을 강제로 재설치하도록 지시합니다. 즉, 이미 설치된 패키지와 그 하위 종속성을 모두 삭제하고 다시 설치합니다. 또한, peer dependencies 충돌과 관계업싱 모든 패키지를 강제로 설치하게 됩니다.

 

--legacy-peer-deps는 버전 충돌 없이 특정 패키지를 설치할 필요가 있을 때 유용할 수 있습니다.

반면에 --force는 기존에 설치된 모든 패키지를 재설치해야 할 때나, 어떠한 오류 메시지도 무시하고 강제로 패키지를 설치해야 할 때 사용합니다.

경험상 실행하면 터집니다...

 

 

일반적으로 개발자들은 이러한 명령어 옵션을 최소화하여 사용하며, 문제가 되는 종속성에 대해 조사하여 적절한 버전을 찾아 해결하는 법을 선호하겠네요.

 

 

 

 

728x90
반응형
profile

LoGin

@LoGinShin

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!