npm 사용 팁: --legacy-peer-deps

2944 단어 npm문제해결npm

npm을 사용해 mobx-react를 설치하려고 하자 다음과 같은 에러가 발생했다.

$ npm i mobx-react --save
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/react
npm ERR!   react@"^18.0.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.8.0 || ^17" from [email protected]
npm ERR! node_modules/mobx-react
npm ERR!   mobx-react@"*" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! See /Users/rulebased848/.npm/eresolve-report.txt for a full report.

에러 메시지를 잘 읽어보면 --force--legacy-peer-deps 플래그를 사용하라고 나와있다. 나는 이 에러를 해결하기 위해 --legacy-peer-deps 플래그를 사용했다.

$ npm i mobx-react --save --legacy-peer-deps

에러의 원인은 peer dependency의 충돌이다. mobx-react가 요구하는 react의 버전과 실제 설치돼 있는 react의 버전이 달라서 에러가 발생한 것이다. 이런 경우 mobx-react의 설치가 실패하게 되는데 --legacy-peer-deps 플래그를 사용하면 peer dependency를 무시하게 되므로 mobx-react를 성공적으로 설치할 수 있게 된다.

좋은 웹페이지 즐겨찾기