TechFeedTechFeed
npm의존성

npm install 에러 해결 총정리

npm error code ENOENT / npm error syscall open / npm error path .../package.json / npm error errno -2 (또는 EPERM·ECONNRESET·ETIMEDOUT)
한 줄 해결: npm install 실패는 대부분 ① package.json 없는 폴더에서 실행(ENOENT) ② node_modules·캐시 손상(EPERM/rename) ③ 사내망·프록시 네트워크 차단(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 설치로 캐시 소유권이 꼬임

해결 방법

1
먼저 위치 확인 (ENOENT)

에러 path 가 package.json 으로 끝나면 그 폴더에 package.json 이 없는 것입니다. ls 로 파일을 확인하고, 프로젝트 루트로 이동해서 다시 실행하세요. 새로 시작하는 폴더면 init 으로 package.json 부터 만듭니다.

ls package.json        # macOS/Linux
dir package.json       # Windows
npm init -y            # package.json 이 없을 때만
2
node_modules·lockfile·캐시 초기화 (rename/손상)

ENOENT rename, .staging 손상은 깨진 설치 잔재가 원인입니다. node_modules 와 lockfile 을 지우고 캐시를 검증한 뒤 다시 설치하면 대부분 해결됩니다. 저는 의존성이 꼬일 때 이 순서를 가장 먼저 씁니다.

rm -rf node_modules package-lock.json
npm cache verify
npm install
3
윈도우 EPERM — 잠금·백신 해제

EPERM: operation not permitted, rename 은 파일이 잠겨 있다는 뜻입니다. VS Code·dev 서버·탐색기를 모두 닫고, 일시적으로 백신 실시간 검사를 끈 뒤 관리자 PowerShell 에서 재설치하세요. 그래도 남으면 캐시를 강제 정리합니다.

rmdir /s /q node_modules
del package-lock.json
npm cache clean --force
npm install
4
사내망·프록시 네트워크 (ECONNRESET/ETIMEDOUT)

회사망이면 프록시를 등록해야 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/ 인지 확인
5
한글 경로·소유권 꼬임 (한국 환경)

윈도우 사용자명이 한글(예: C:\Users\홍길동)이면 일부 빌드 도구가 경로를 깨뜨립니다. 프로젝트를 C:\dev 같은 영문 경로로 옮기면 안전합니다. 맥/리눅스에서 과거 sudo 설치로 ~/.npm 소유권이 root 로 꼬였다면 소유권을 본인으로 되돌립니다.

# Windows: 영문 경로로 이동 후 재설치
# 예) C:\Users\홍길동\proj → C:\dev\proj
# macOS/Linux: 캐시 소유권 복구
sudo chown -R $(whoami) ~/.npm
6
최후수단 — git clean 으로 전부 비우기

위 방법으로도 안 되고 git 으로 관리 중이면, 추적되지 않는 파일(node_modules 포함)을 통째로 지운 뒤 새로 설치합니다. 커밋 안 한 작업 파일도 지워지니 실행 전 git status 로 확인하세요.

git clean -fdx        # 추적 안 된 파일 전부 삭제(주의)
npm install
💡 예방: npm install 은 항상 package.json 이 있는 프로젝트 루트에서 실행하고, 의존성이 꼬이면 sudo 로 우회하지 말고 node_modules·lockfile 삭제 후 재설치를 기본기로 두세요. 윈도우는 프로젝트를 영문 경로에 두고 설치 중에는 에디터를 닫는 것만으로 EPERM 대부분을 예방할 수 있습니다.
npmnpm installENOENTEPERMECONNRESET권한npm cache프록시

관련 에러

관련 가이드

pnpm vs npm vs Yarn Berry 2026 — JavaScript 패키지 매니저 속도·디스크·워크스페이스 실전 비교Claude Code 가이드 #13 — Agent Teams 실전 가이드Claude Code 가이드 #17 — 보안 & 권한 관리클로드 코드 완전 자동화 #1 — 권한 질문 없이 실행하기