2022. 9. 25. 22:05ㆍStudy/Error
npm 설치 오류
firebase설치 시 제대로 설치되지 않는 현상을 발견했다. 터미널에 에러메시지는 딱히 뜨지 않았으나 사용할 수 없음은 물론 package.json에도 firebase가 보이지 않았다.
검색해본 결과 package-lock.json, node_modules를 삭제하고 다시 npm을 설치하라는 것이었는데(사실 나는 package.json까지 삭제했다🙄) 삭제까지는 성공 했으나 다시 설치하는 과정에서 package-lock.json만 다시 설치될 뿐 node_modules, package.json는 여전히 생성되지 않았다.
다행인지 불행인지 계속 설치하다보니
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
라는 메시지가 나와 검색해본 후 npm install --save --legacy-peer-deps 라고 명령어를 치니 무사히 설치되었다.
npm install --save --legacy-peer-deps
--force와 --legacy-peer-deps가 무엇인지 찾아보니 npm 7부터는 peer dependencies가 일어나면 설치하지 않는데, 이를 무시하고 설치할 수 있게 해주는 것이 --force와 --legacy-peer-deps 명령어이다.
peer dependencies란 다른 버전의 패키지에 대해 의존성이 있는 것을 말하는 것 같다. (내가 이해한 바로는 그런데 아닐수도?)
--force는 package-lock.json에 다른 dependency 버전을 추가해 우회 하는 방식으로 설치해주는 옵션이다.
--legacy-peer-deps는 peer dependencies를 무시하여 설치해주는 옵션이다.
firebase
결과적으로 잘 설치되어 해피했으나 이번에는 firebase/app을 찾을 수 없다고 에러가 났다. package.json에도 잘 설치 됐는데 왜죠,,
알고보니 9버전 부터는 compat을 추가해야한다고 한다. (버전과의 싸움 🥲)
//이전: 8 버전
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/firestore';
//이후: 9 버전
// v9 compat packages are API compatible with v8 code
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
참조
https://sukvvon.tistory.com/75
https://cocobi.tistory.com/114