Firebase Cloud Functions를 사용하기 위해
Firebase CLI를 설치하려고 아래 명령어를 실행했다.
npm install -g firebase-tools
하지만 처음에는 다음과 같은 에러를 만났다.
command not found: npm
이 글은
👉 왜 이런 에러가 발생했는지
👉 어떤 순서로 해결해야 하는지
👉 설치 중 나타난 경고 메시지는 무엇을 의미하는지
를 정리한 기록이다.
❌ 1. command not found: npm 에러의 원인
결론부터 말하면, npm이 설치되지 않은 상태였다.
여기서 중요한 사실 하나 👇
npm은 단독으로 설치할 수 있는 도구가 아니다.
npm은 Node.js에 포함된 패키지 관리자다.
즉,
- Node.js ❌ → npm ❌
- Node.js ✅ → npm ✅
Firebase Cloud Functions는 Node.js 기반이기 때문에
Node.js가 먼저 설치되어 있어야 한다.
🔗 Node / npm / nvm 관계 정리
헷갈리지 않게 한 번에 정리하면 다음과 같다.
nvm → Node.js → npm
- Node.js: JavaScript 실행 환경
- npm: Node.js 패키지 관리자
- nvm: Node.js 버전 관리자
👉 npm은 Node.js에 포함되어 있고,
👉 nvm은 Node.js를 설치·관리하기 위한 도구다.
❓ 왜 Node.js를 바로 설치하지 않고 nvm을 쓰는가?
macOS + Firebase 환경에서는 nvm 사용이 사실상 정석이다.
이유 1. Firebase는 Node 버전에 민감하다
Firebase Cloud Functions는
지원하는 Node 버전이 명확히 정해져 있다.
- 현재 권장 버전: Node 18
nvm을 사용하면:
nvm install 18
nvm use 18
👉 버전 충돌 없이 정확하게 맞출 수 있다.
이유 2. 권한(EACCES) 에러를 피할 수 있다
Node를 직접 설치하면 종종 이런 에러를 만난다.
EACCES: permission denied
그래서 sudo npm install -g ... 를 쓰게 되는데,
이건 권장되지 않는 패턴이다.
nvm은:
- 홈 디렉토리에 Node 설치
- sudo 필요 없음
- 글로벌 패키지 설치도 안전
✅ 2. 올바른 설치 순서
1️⃣ nvm 설치
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
⚠️ 설치 후 터미널을 반드시 완전히 종료했다가 다시 실행
2️⃣ nvm 설치 확인
nvm --version
3️⃣ Node.js 설치 (Firebase 권장 버전)
nvm install 18
nvm use 18
4️⃣ Firebase CLI 설치
이제 다시 처음에 실패했던 명령어를 실행한다.
npm install -g firebase-tools
⚠️ 3. 설치 중 나타난 경고(warn) 메시지 해석
Firebase CLI 설치 중 다음과 같은 메시지가 출력되었다.
npm warn deprecated node-domexception@1.0.0:
Use your platform's native DOMException instead
changed 607 packages in 5s
77 packages are looking for funding
run `npm fund` for details
이 메시지들은 에러가 아니다.
🔸 npm warn deprecated ...
- firebase-tools 내부 의존성 중 하나가
- 더 이상 권장되지 않는(deprecated) 패키지를 사용하고 있다는 알림
- 내 코드 문제 아님
- 설치 실패 아님
👉 대형 npm 패키지에서는 매우 흔한 경고다.
🔸 changed 607 packages in 5s
- 패키지 설치/업데이트가 정상적으로 완료되었다는 의미
- 문제 없음
🔸 packages are looking for funding
- 오픈소스 패키지 후원 안내
- 과금 ❌
- 무시해도 됨
✅ 4. 정상 설치 확인 방법
아래 명령어로 확인한다.
firebase --version

버전 번호가 출력되면
Firebase CLI 설치는 정상적으로 완료된 상태다.
'PulseBoard' 카테고리의 다른 글
| Firebase - Functions 의 Index.js 역할 (0) | 2025.12.24 |
|---|---|
| Firebase Functions 초기 환경 설정 해보기 (0) | 2025.12.24 |
| 카카오 OpenID Connect를 써도 Firebase Custom Token이 필요한 이유 (0) | 2025.12.24 |
| 🔐 카카오 로그인은 왜 Firebase Email/Password로 쓰면 안 될까? (0) | 2025.12.24 |
| Firebase Google 로그인 튜토리얼을 “실서비스 아키텍처”로 리팩토링하기 (iOS) (0) | 2025.12.23 |