npm install 실패 (dependency 에러, 캐시 삭제 등)

2023. 10. 23. 00:09· Web dev
목차
  1. 1. npm install 에러의 흔한 원인
  2. 2. dependency 버전 관련 에러 해결
  3. 3. --force vs --legacy-peer-deps
  4. 4. npm 캐시 폴더 권한 문제
반응형

 

오랜만에 리액트 프로젝트를 생성한 후 npm install을 했는데 계속해서 에러가 발생했다. npm install 이후, 에러가 발생한다면 아래와 같은 원인이 있을 수 있는데 에러 메세지를 확인하여 각각에 맞는 해결방법으로 해결해주면 된다.

 

1. npm install 에러의 흔한 원인

  • sudo 권한으로 명령어를 실행해야하는 경우
  • dependency 버전 문제
  • node와 npm 버전이 맞지 않는 경우

 

2. dependency 버전 관련 에러 해결

오랜만에 새로운 프로젝트를 시작한 후, npm install을 실행시켰는데 다음과 같은 에러가 발생했다. 

jieun@jieun-MacBookAir:~/Desktop/dev$npm i
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: gpt-diary@0.0.0
npm ERR! Found: eslint@undefined
npm ERR! node_modules/eslint
npm ERR!   dev eslint@"^8.45.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer eslint@">=7" from eslint-plugin-react-refresh@0.4.3
npm ERR! node_modules/eslint-plugin-react-refresh
npm ERR!   dev eslint-plugin-react-refresh@"^0.4.3" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! 
npm ERR! For a full report see:
npm ERR! /Users/jieun/.npm/_logs/2023-10-22T12_53_57_612Z-eresolve-report.txt

 

에러 메세지를 확인해보면 ERESOLVE unable to resolve dependency tree라고 나오는데 dependency 버전 관련 문제가 발생했음을 알 수 있다. 이 경우, 두가지의 해결방법이 있을 수 있는데 아래 두가지중 하나의 명령어를 사용하면 된다.

$ npm install --force
$ npm install --save --legacy-peer-deps

 

3. --force vs --legacy-peer-deps

dependency 관련 문제를 해결하기 위해 두가지 옵션 중 하나를 선택할 수 있는데 --force의 경우 package-lock.json에 다른 dependency 버전을 추가하는 것으로 충돌하는 peer dependency들을 루트 프로젝트에 설치하여 에러를 해결한다. --legacy-peer-deps 옵션의 경우 peer dependency가 맞지 않아도 일단 설치하는 것으로  --force를 먼저 실행시켜보고 안되면 차선책으로 --legacy-peer-deps 옵션을 선택해 실행시켜보면 될 것 같다.

 

4. npm 캐시 폴더 권한 문제

--force 옵션을 먼저 실행시켜보고, 차선책으로 --legacy-peer-deps 옵션 사용을 사용했더니 아래와 같은 다른 에러가 발생했다. 관련 에러를 확인해보니 npm 캐시 폴더에 관한 권한 문제인 것 같았다. 

jieun@jieun-MacBookAir:~/Desktop/dev$npm install --save --legacy-peer-deps
npm ERR! code EACCES
npm ERR! syscall open
npm ERR! path /Users/jieun/.npm/_cacache/index-v5/c1/3e/4c4d082623156529b4fa73601a4ac92e33a6b20f963f1096cee31b6d9010
npm ERR! errno EACCES
npm ERR! 
npm ERR! Your cache folder contains root-owned files, due to a bug in
npm ERR! previous versions of npm which has since been addressed.
npm ERR! 
npm ERR! To permanently fix this problem, please run:
npm ERR!   sudo chown -R 501:20 "/Users/jieun/.npm"

 

해당 에러는 npm 캐시 폴더에 루트 소유자 파일이 있어 발생하는 문제로 에러 메세지에서 제시한대로 'sudo' 명령어를 사용하여 캐시 폴더의 권한을 변경해주었다.

jieun@jieun-MacBookAir:~/Desktop/dev$sudo chown -R 501:20 "/Users/jieun/.npm"
Password:

 

이후, npm install을 실행했더니 에러 없이 정상적으로 잘 설치되는 것을 확인할 수 있었다.

반응형
저작자표시 비영리 동일조건 (새창열림)
  1. 1. npm install 에러의 흔한 원인
  2. 2. dependency 버전 관련 에러 해결
  3. 3. --force vs --legacy-peer-deps
  4. 4. npm 캐시 폴더 권한 문제
'Web dev' 카테고리의 다른 글
  • 깃허브 블로그 만들기 Chirpy 7.2.4 버전 Mac 20250310 기준 - 1
  • package.json과 package-lock.json의 차이 및 중요성
  • REST, API, Rest API와 Restful API의 차이(기본 설계 원칙)
  • Mixed content Error 해결방법 (https -> http 요청 시 발생하는 보안 문제)
도잎
도잎
프론트엔드 개발 성장기록
도잎
JDevelog
도잎
전체
오늘
어제
반응형
  • 분류 전체보기 (149)
    • Web dev (48)
      • React (22)
      • Vue (8)
      • Next.js (6)
      • Node.js (2)
      • Springboot (2)
    • App dev (2)
      • Flutter (2)
    • Language (33)
      • javascript (30)
      • typescript (2)
      • java (1)
    • StyleSeet (3)
      • CSS (3)
      • Sass (0)
    • Database (2)
      • PostgreSQL (1)
    • DevOps (11)
      • Webpack (4)
      • Linux (3)
      • Docker (2)
      • Tomcat (1)
    • 개발지식 (2)
      • Web (1)
    • 항해99(6기) (20)
    • UXUI (0)
    • 알고리즘 (25)
    • 유용정보 (2)

최근 글

hELLO · Designed By 정상우.v4.2.1
도잎
npm install 실패 (dependency 에러, 캐시 삭제 등)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.