노트북을 바꾸고 환경 세팅을 다시 처음부터 하니 이전에는 발생하지 않았던 에러가 속속들이 나오기 시작했다......ㅜㅜ 하나 하나 고쳐봐야지.....
기존 repo를 git clone 후 npm install
을 할 때 아래와 같은 에러가 발생했다. 사람마다 에러 메시지가 다양하던데, 나는 'could not resolve'라는 에러 메시지가 발생했다.
peer dependency라는 것이 충돌이 나서 발생한 문제였다.
그냥 dependency와 peer dependency의 차이점이 뭔지 찾아보니
dependency
특정 모듈이 정상적으로 작동하기 위해 필요한 다른 라이브러리나 모듈.
모듈을 사용할 때 반드시 필요하기 때문에 모듈을 설치할 때 자동으로 설치됨.
peer dependency
어떤 모듈이 특정 버전 또는 버전 범위의 다른 라이브러리와 함께 사용될 때 제대로 작동한다는 것을 나타냄.
위와 같은 차이점이 있었다! dependency는 모듈 안에 포함되는 것, peer dependency는 같은 선상에서 함께 돌아가는 모듈이라고 생각하면 될 것 같다.
npm6 버전에서는 peer dependency가 자동 설치 되지 않지만, npm7부터는 peer dependency를 자동 설치하고 충돌이 발생할 경우 에러를 발생시킨다고 한다. 이번에 node.js를 재설치하면서 npm이 업데이트 되어 발생한 문제 같다...!
npm install --legacy-peer-deps
이 명령어를 통해 이미 설치된 peer dependency와 npm7이 요구하는 버전의 peer dependency가 맞지 않을 때 발생하는 error를 무시할 수 있다.
https://velog.io/@xmun74/%EC%97%90%EB%9F%AC-npm-i-%ED%95%98%EB%A9%B4-npm-ERR-code-ERESOLVE
https://stackoverflow.com/questions/64573177/unable-to-resolve-dependency-tree-error-when-installing-npm-packages
https://stackoverflow.com/questions/66239691/what-does-npm-install-legacy-peer-deps-do-exactly-when-is-it-recommended-wh