npm install 에러 해결 총정리
npm error code ENOENT / npm error syscall open / npm error path .../package.json / npm error errno -2 (또는 EPERM·ECONNRESET·ETIMEDOUT)
이런 증상일 때
npm install 을 실행하면 패키지가 받아지지 않고 빨간 npm error 블록과 함께 ENOENT(파일 없음)·EPERM(권한/잠금)·ECONNRESET/ETIMEDOUT(네트워크) 중 하나가 출력됩니다. 깨끗한 새 프로젝트나 git clone 직후, 혹은 의존성을 새로 추가하다가 자주 터지며, 같은 명령이 다른 PC에서는 되는데 내 환경에서만 막히기도 합니다. 저는 윈도우·맥 양쪽에서 이 세 가지를 가장 많이 만났습니다.
원인
- package.json 이 없는 폴더(또는 한 단계 위/아래 폴더)에서 npm install 실행 → ENOENT: no such file or directory, open .../package.json
- node_modules/.staging 또는 캐시가 손상돼 설치 중 파일 이동(rename) 실패 → ENOENT/EPERM rename
- 윈도우에서 VS Code·dev 서버가 node_modules 파일을 잠그거나 백신(Windows Defender 등)이 rename 을 가로챔 → EPERM: operation not permitted
- 회사 사내망·방화벽·프록시가 registry.npmjs.org 연결을 끊음 → ECONNRESET / ETIMEDOUT / network timeout
- 윈도우 사용자명·경로에 한글이 섞여 일부 도구가 경로를 깨뜨리거나, 과거 sudo 설치로 캐시 소유권이 꼬임
해결 방법
에러 path 가 package.json 으로 끝나면 그 폴더에 package.json 이 없는 것입니다. ls 로 파일을 확인하고, 프로젝트 루트로 이동해서 다시 실행하세요. 새로 시작하는 폴더면 init 으로 package.json 부터 만듭니다.
ls package.json # macOS/Linux
dir package.json # Windows
npm init -y # package.json 이 없을 때만ENOENT rename, .staging 손상은 깨진 설치 잔재가 원인입니다. node_modules 와 lockfile 을 지우고 캐시를 검증한 뒤 다시 설치하면 대부분 해결됩니다. 저는 의존성이 꼬일 때 이 순서를 가장 먼저 씁니다.
rm -rf node_modules package-lock.json
npm cache verify
npm installEPERM: operation not permitted, rename 은 파일이 잠겨 있다는 뜻입니다. VS Code·dev 서버·탐색기를 모두 닫고, 일시적으로 백신 실시간 검사를 끈 뒤 관리자 PowerShell 에서 재설치하세요. 그래도 남으면 캐시를 강제 정리합니다.
rmdir /s /q node_modules
del package-lock.json
npm cache clean --force
npm install회사망이면 프록시를 등록해야 registry 에 닿습니다. 반대로 집에서 켜둔 프록시 설정이 남아 막히는 경우도 많으니, 프록시를 안 쓰면 설정을 지우고 현재 registry 를 확인하세요.
# 프록시 환경일 때
npm config set proxy http://사내프록시:포트
npm config set https-proxy http://사내프록시:포트
# 프록시를 안 쓰는데 막힐 때(잔존 설정 제거)
npm config delete proxy
npm config delete https-proxy
npm config get registry # https://registry.npmjs.org/ 인지 확인윈도우 사용자명이 한글(예: C:\Users\홍길동)이면 일부 빌드 도구가 경로를 깨뜨립니다. 프로젝트를 C:\dev 같은 영문 경로로 옮기면 안전합니다. 맥/리눅스에서 과거 sudo 설치로 ~/.npm 소유권이 root 로 꼬였다면 소유권을 본인으로 되돌립니다.
# Windows: 영문 경로로 이동 후 재설치
# 예) C:\Users\홍길동\proj → C:\dev\proj
# macOS/Linux: 캐시 소유권 복구
sudo chown -R $(whoami) ~/.npm위 방법으로도 안 되고 git 으로 관리 중이면, 추적되지 않는 파일(node_modules 포함)을 통째로 지운 뒤 새로 설치합니다. 커밋 안 한 작업 파일도 지워지니 실행 전 git status 로 확인하세요.
git clean -fdx # 추적 안 된 파일 전부 삭제(주의)
npm install