사건
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는 기존에 설치된 모든 패키지를 재설치해야 할 때나, 어떠한 오류 메시지도 무시하고 강제로 패키지를 설치해야 할 때 사용합니다.
경험상 실행하면 터집니다...
일반적으로 개발자들은 이러한 명령어 옵션을 최소화하여 사용하며, 문제가 되는 종속성에 대해 조사하여 적절한 버전을 찾아 해결하는 법을 선호하겠네요.
'Back End > Node.js' 카테고리의 다른 글
node.js reactNative Expo 개발 서버 사용해 최적의 개발하기, expo 옵션들 (11) | 2023.05.29 |
---|---|
node.js, react, native 모듈 정리 및 제거 편하게 하기 (0) | 2023.05.29 |