🚫[node] npm ERR! (node version err)

NewHaΒ·2023λ…„ 8μ›” 27일
4

🚨

npm ERR! code EEXIST.

πŸ™…πŸ»β€β™€οΈ 상황

μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ npx create-react-app을 μ‹€ν–‰ν–ˆλŠ”λ° λ‹€μŒκ³Ό 같은 μ—λŸ¬κ°€ λ°œμƒν–ˆλ‹€.

πŸ‘‰πŸ» ν•΄κ²°

1. npm cache clean --force

μ „λ‚  ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜λ©° node 버전을 upgrade ν–ˆλŠ”λ°, κ·ΈλŸ¬λ©΄μ„œ 버전이 κΌ¬μ—¬μ„œ 생긴 μ—λŸ¬λΌλŠ” 점을 μ•Œκ²Œ λ˜μ—ˆλ‹€.

검색 κ²°κ³Ό, 이 경우 두가지 방법을 μΆ”μ²œν•˜λŠ”λ°
μš°μ„ , npm cache clean --force λͺ…λ Ήμ–΄λ‘œ npm의 cacheλ₯Ό κ°•μ œλ‘œ μ „λΆ€ μ‚­μ œν•˜λŠ” 방법이닀.

ν•˜μ§€λ§Œ, λ‚΄ 경우 ν•΄λ‹Ή λͺ…λ Ήμ–΄μ—μ„œλ„ μ—λŸ¬κ°€ λ°œμƒν–ˆλ‹€.

2. npm cache verify

λ‹€μŒμœΌλ‘œ λ‘λ²ˆμ§Έ 방법인 npm cache verify λͺ…령어도 μž…λ ₯ν•΄λ³΄μ•˜λ‹€. cache ν΄λ”μ˜ λ‚΄μš©μ„ 확인해 꼬인 뢀뢄을 μ²΄ν¬ν•˜κ³  ν•΄κ²°ν•˜λŠ” λͺ…령어이닀.

ν•˜μ§€λ§Œ, μ—­μ‹œλ‚˜ μ—λŸ¬κ°€ λ°œμƒν–ˆλ‹€.

🚨

npm ERR! code EACCES

두 κ°€μ§€ 방법을 μ‹œλ„ν•˜λ©΄μ„œ err codeκ°€ λ°”λ€Œμ—ˆλŠ”λ°, code EACCES μ—λŸ¬λŠ” κΆŒν•œλ¬Έμ œ μ—λŸ¬μ΄λ‹€. Mac의 경우, --global, -g 와 같이 μ „μ—­μ„€μΉ˜ μ˜΅μ…˜μ„ λΆ™μ—¬μ„œ installν•˜λ €κ³  ν•  λ•Œ 자주 λ°œμƒν•˜λŠ” μ—λŸ¬μ΄λ‹€. 이 μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄ 보톡은 sudoλ₯Ό λΆ™μ—¬μ„œ κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ„€μΉ˜ν•΄μ„œ ν•΄κ²°ν•œλ‹€.
(sudoλ₯Ό λΆ™μ—¬μ„œ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜λ©΄ λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λΌκ³  λ‚˜μ˜€λŠ”λ°, μ΄λ•Œ Macμ—μ„œ μ„€μ •ν•œ λΉ„λ°€λ²ˆν˜Έλ₯Ό 적으면 λœλ‹€.)

ν•˜μ§€λ§Œ, μ—­μ‹œλ‚˜ μ‹€νŒ¨ν–ˆλ‹€.

3. npm install -verbose

🚨 npm ERR! code ERESOLVE

λ‚΄κ°€ κ²ͺ은 μ—λŸ¬λŠ” μ•„λ‹ˆμ§€λ§Œ, npm install λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰μ‹œν‚¬ λ•Œ κ°„ν˜Ή λ³Ό 수 μžˆλŠ” μ—λŸ¬λΌκ³  ν•œλ‹€.

  • sudoκΆŒν•œμœΌλ‘œ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•΄μ•Ό ν•˜λŠ” 경우
  • dependencies 버전 문제
  • node와 npm 버전이 λ§žμ§€ μ•ŠλŠ” 경우
    μ΄λŸ¬ν•œ 경우 λ§Œλ‚˜λŠ” μ—λŸ¬λ‘œ npm install -verbose λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰μ‹œμΌœ 원인을 확인할 수 μžˆλ‹€κ³  ν•œλ‹€.
    (좜처 : npm install μ‹€νŒ¨ ν•΄κ²°(npm ERR! code ERESOLVE))

node와 npm 버전이 λ§žμ§€ μ•ŠλŠ” 경우일 수 μžˆλ‹€κ³  νŒλ‹¨ν•˜μ—¬ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰μ‹œμΌœ 원인을 νŒŒμ•…ν•΄ 보기둜 ν–ˆλ‹€.

  • npm install -verboseλͺ…λ Ήμ–΄λŠ” ν”„λ‘œμ„ΈμŠ€ 쀑에 μˆ˜ν–‰ 쀑인 μž‘μ—…μ— λŒ€ν•œ μžμ„Έν•œ 정보λ₯Ό 얻을 수 μžˆλŠ” λͺ…λ Ήμ–΄λ‘œ, npm이 쒅속성을 ν•΄κ²°ν•˜λŠ” 방법, HTTP μš”μ²­, νŒ¨ν‚€μ§€ μ„€μΉ˜ ν”„λ‘œμ„ΈμŠ€, μ„€μΉ˜λ˜λŠ” νŒŒμΌμ— λŒ€ν•œ 세뢀정보, 였λ₯˜ λ°œμƒμ‹œ μžμ„Έν•œ 좜λ ₯이 무엇이 잘λͺ»λ˜μ—ˆλŠ” μ§€ μΆ”κ°€ 정보λ₯Ό 얻을 수 μžˆμ–΄ 문제λ₯Ό ν•΄κ²°ν•  λ•Œ 도움이 λ˜λŠ” λͺ…령어라고 ν•œλ‹€.

npm ERR! code ENOENT 였λ₯˜λ©”μ‹œμ§€λ₯Ό λ³Ό 수 μžˆμ—ˆλ‹€. νŒŒμΌμ΄λ‚˜ 디렉토리λ₯Ό 찾을 수 μ—†λ‹€λŠ” 였λ₯˜λ‘œ, μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” νŒŒμΌμ΄λ‚˜ 디렉토리에 μ ‘κ·Όν•˜λ €κ³  μ‹œλ„ν–ˆλ‹€λŠ” 였λ₯˜μ΄λ‹€. λ‚΄ 경우 package.jsonνŒŒμΌμ„ 찾을 수 μ—†λ‹€λŠ” 였λ₯˜λ‘œ 보인닀.

🚨 npm ERR! code ENOENT의 원인

  • μ„€μΉ˜λ˜μ§€ μ•Šμ€ νŒ¨ν‚€μ§€λ‚˜ λͺ¨λ“ˆμ— μ ‘κ·Όν•˜λ €κ³  ν–ˆμ„ λ•Œ λ°œμƒ -> package.json νŒŒμΌμ— νŒ¨ν‚€μ§€λ₯Ό μΆ”κ°€ν–ˆλŠ”μ§€ ν™•μΈν•˜κ³  npm install 둜 ν•„μš”ν•œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•œλ‹€.
  • 파일 경둜λ₯Ό μ§€μ •ν•˜λŠ” 경우, 파일이 μ§€μ •λœ μœ„μΉ˜μ— 없을 λ•Œ λ°œμƒ -> μ˜¬λ°”λ₯Έ κ²½λ‘œμΈμ§€ ν™•μΈν•˜κ³ , κ²½λ‘œμ— ν•΄λ‹Ή 파일이 μžˆλŠ” μ§€ ν™•μΈν•œλ‹€.
  • μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” νŒŒμΌμ΄λ‚˜ 디렉토리에 μ ‘κ·Όν•˜λ €κ³  ν•  λ•Œ λ°œμƒ
  • cache둜 인해 λ¬Έμ œκ°€ λ°œμƒ -> npm cache clean --force둜 npm μΊμ‹œλ₯Ό μ§€μš΄ ν›„ λ‹€μ‹œ μ„€μΉ˜λ₯Ό μ‹œλ„ν•œλ‹€.
  • 원격 λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜λ €λŠ”λ° λ‹€μš΄λ‘œλ“œλ₯Ό λ°©ν•΄ν•˜λŠ” λ„€νŠΈμ›Œν¬ λ¬Έμ œκ°€ μžˆλŠ” 경우 -> 인터넷 μ—°κ²°κ³Ό ν”„λ‘μ‹œ 섀정을 ν™•μΈν•œλ‹€.
  • κΆŒν•œ μ—†μŒμ˜ 문제 -> npm 디렉토리에 λŒ€ν•œ 읽기, μ“°κΈ° κΆŒν•œμ΄ μžˆλŠ” μ§€ ν™•μΈν•œλ‹€.
  • μ†μƒλœ node_modulesλ‚˜ package-lock.json 문제둜 λ°œμƒ -> ν•΄λ‹Ή 폴더와 νŒŒμΌμ„ μ‚­μ œν•œ ν›„ λ‹€μ‹œ npm install을 ν•œλ‹€.

πŸ‘‰πŸ» package.json 파일 μƒμ„±ν•˜κΈ°


이후 CRA둜 ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜λ©΄μ„œ ν•΄λ‹Ή μ—λŸ¬λ₯Ό ν•œ 번 더 λ§Œλ‚˜κ²Œ λ˜μ–΄μ„œ μΆ”κ°€ν•˜μžλ©΄,

$ npm install express
$ npm init -y

μœ„μ˜ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•΄μ„œ package.json νŒŒμΌμ„ μƒμ„±ν•˜κ³  λ‹€μ‹œ μ‹œλ„ν–ˆλ”λ‹ˆ λ˜μ—ˆλ‹€.

4. sudo chown -R $(whoami) $(npm config get cache)

검색을 ν•˜λ˜ 도쀑 npm ERR! code ENOENT의 원인 쀑 ν•˜λ‚˜μΈ, κΆŒν•œλ¬Έμ œμ— λŒ€ν•œ 글을 읽게 λ˜μ—ˆλ‹€.

일반적으둜, μΊμ‹œ 폴더와 같은 npmμ΄λ‚˜ νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €κ°€ μ‚¬μš©ν•˜λŠ” 폴더듀은 μ‚¬μš©μžκ°€ 직접 μƒμ„±ν•˜λŠ” 게 μ•„λ‹Œ, μ‹œμŠ€ν…œμ΄ 미리 μƒμ„±ν•œ ν΄λ”λ‘œ, λ³΄μ•ˆμƒ 이유둜 일반 μ‚¬μš©μžκ°€ μ“°κΈ° κΆŒν•œμ„ κ°€μ§€μ§€ μ•ŠλŠ”λ‹€. λ”°λΌμ„œ 보톡 μ΄λŸ¬ν•œ ν΄λ”μ˜ μ†Œμœ μžλŠ” root κ³„μ •μ΄λ‚˜ λ‹€λ₯Έ μ‹œμŠ€ν…œ κ΄€λ¦¬μž 계정이 λ˜μ–΄ μžˆλ‹€.

  • μΊμ‹œ ν΄λ”μ˜ μ†Œμœ μžκ°€ root κ³„μ •μœΌλ‘œ λ˜μ–΄ μžˆλ‹€λ©΄ μ—λŸ¬κ°€ λ°œμƒν•  수 μžˆλ‹€λŠ” 말이닀. 이 경우, μΊμ‹œν΄λ”μ˜ μ†Œμœ μžλ₯Ό ν˜„μž¬ μ‚¬μš©μžλ‘œ λ³€κ²½ν•  수 μžˆλ‹€. sudo chown -R $(whoami) $(npm config get cache)λͺ…λ Ήμ–΄μ—μ„œ $(whoami)λŠ” ν˜„μž¬ ν„°λ―Έλ„μ—μ„œ μž‘μ—…ν•˜λŠ” μ‚¬μš©μžλ₯Ό ν™•μΈν•˜λŠ” λͺ…령어이고, $(npm config get cache)λŠ” npm이 μ‚¬μš©ν•˜λŠ” μΊμ‹œ ν΄λ”μ˜ 경둜λ₯Ό λ°˜ν™˜ν•˜λŠ” λͺ…λ Ήμ–΄λ‘œ ν•΄λ‹Ή ν΄λ”μ˜ μ†Œμœ μžλ₯Ό ν˜„μž¬ μ‚¬μš©μžλ‘œ λ³€κ²½ν•˜κ²Œ λœλ‹€.
    (좜처 : VSCode 터미널 μ°½μ—μ„œ react μ„€μΉ˜μ‹œ 였λ₯˜λ°œμƒ )

사싀 λ‚΄ λ¬Έμ œλŠ” package.json파일의 λ¬Έμ œμ˜€λŠ”λ°, μ–΄λ–»κ²Œ install을 ν•΄μ•Όν•  μ§€ λͺ¨λ₯΄κ² μ–΄μ„œ λ°˜μ‹ λ°˜μ˜ν•˜λŠ” 마음으둜 이런 λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν–ˆκ³ , 이후 npm cache verifyλͺ…λ Ήμ–΄κ°€ μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰λ˜μ—ˆλ‹€!

🚨

npm ERR! code ERR_SOCKET_TIMOUT

npm cache verifyκ°€ μ—λŸ¬λŒ€μ‹  μ„±κ³΅ν–ˆμœΌλ‹ˆ, cache λ¬Έμ œλŠ” 해결됐을 κ²ƒμœΌλ‘œ μƒκ°ν•˜κ³ , λ‹€μ‹œ ν•œ 번 npx create-react-app을 μ‹€ν–‰ν–ˆλŠ”λ° λ‹€μŒκ³Ό 같은 μ—λŸ¬λ₯Ό λ§žμ΄ν•˜κ²Œ λ˜μ—ˆλ‹€.😱

νŠΉμ • μ‹œκ°„ λ‚΄ μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰λ˜μ§€ λͺ»ν•΄μ„œ μžλ™μ€‘λ‹¨λ˜λŠ” λ„€νŠΈμ›Œν¬ μ—°κ²° 문제라고 ν•œλ‹€. 검색결과 μΊμ‹œλ₯Ό μ‚­μ œν•˜λΌλŠ” 해결방법을 μ–»μ—ˆλ‹€. (κ²°κ΅­ λ‹€μ‹œ 처음으둜 λ˜λŒμ•„ μ™”λ‹€....πŸ₯²)

5. λ‹€μ‹œ npm cache clear --force

μ΄λ²ˆμ—” μ—λŸ¬κ°€ μ•„λ‹Œ κ²½κ³ λ©”μ‹œμ§€λ₯Ό λ°›κ²Œ λ˜μ—ˆλ‹€.

6. κ²°κ΅­ nodeλ₯Ό μ™„μ „νžˆ μ œκ±°ν•˜κ³  μƒˆλ‘œ μ„€μΉ˜ν•˜κΈ°λ‘œ ν–ˆλ‹€.

κ²½κ³  λ©”μ‹œμ§€ μ΄ν›„λ‘œ λ‹€μ‹œ μ„€μΉ˜λ₯Ό μ‹œλ„ν•΄λ³΄κ³ , package-lock.json, node_modulesλ₯Ό μ‚­μ œν•˜κ³  npm --verbose install μž¬μ„€μΉ˜κΉŒμ§€ ν•΄λ³΄μ•˜μ§€λ§Œ 계속 였λ₯˜κ°€ λ°œμƒν•˜μ—¬ λͺ¨λ‘ μ‚­μ œν•˜κ³  μž¬μ„€μΉ˜ν•˜κΈ°λ‘œ ν–ˆλ‹€!

πŸ’£ node μ™„μ „ μ‚­μ œ

sudo rm -rf /usr/local/lib/node
sudo rm -rf /usr/local/lib/node_modules
sudo rm /usr/local/lib/dtrace/node.d
sudo rm /usr/local/share/man/man1/node.1
sudo rm -rf /usr/local/share/doc/node
sudo rm -rf /usr/local/share/systemtap/tapset/node.stp
sudo rm -rf /usr/local/include/node
sudo rm /usr/local/bin/node
sudo rm /usr/local/bin/npm
sudo rm /usr/local/bin/npx
sudo rm -rf /Users/$USER/.npm
sudo rm -rf ~/.npm

μœ„μ˜ λͺ…령어듀을 μ°¨λ‘€λ‘œ μž…λ ₯ν•œ ν›„, node -v둜 μ‚­μ œλ˜μ—ˆλŠ” μ§€ ν™•μΈν•œ κ²°κ³Ό μ™„λ²½ν•˜κ²Œ μ‚­μ œλ˜μ—ˆλ‹€!

이 ν›„ node.js νŽ˜μ΄μ§€λ‘œ κ°€μ„œ μƒˆλ‘œ λ‹€μš΄λ‘œλ“œλ₯Ό λ°›μ•„ μ„€μΉ˜ν•˜μ˜€κ³ , 확인결과 μƒˆλ‘œμš΄ 버전이 잘 μ„€μΉ˜λ˜μ—ˆλ‹€.

npm λ˜ν•œ 잘 μ„€μΉ˜λ˜μ—ˆμŒμ„ 확인!

μƒˆ ν”„λ‘œμ νŠΈ λ˜ν•œ μ„±κ³΅μ μœΌλ‘œ μ„€μΉ˜λ˜μ—ˆλ‹€!

🌈 Finish

  • μ—λŸ¬κ°€ λ°œμƒν•˜κ³  κ²€μƒ‰ν•˜λ©° ν•΄κ²° 방법을 μ°ΎλŠ” λ„μ€‘μ—λŠ” μ—λŸ¬λ©”μ‹œμ§€λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ 꼼꼼히 읽지 λͺ»ν–ˆλ‹€λŠ” 생각이 λ“ λ‹€. μ‹œλ„ν•  수 μžˆλŠ” λͺ¨λ“  것을 μ‹œλ„ν•΄μ„œ ν•΄κ²°ν•˜λŠ”λ° κΈ‰κΈ‰ν–ˆλ‹€. μ •λ¦¬ν•˜κ³  λ³΄λ‹ˆ λͺ‡ μ‹œκ°„ λ™μ•ˆ κ³ μƒν–ˆμ§€λ§Œ λ§Žμ€ μ—λŸ¬λ₯Ό λ§Œλ‚˜λ³Ό 수 μžˆμ–΄μ„œ λœ»κΉŠμ€ μ‹œκ°„μ΄μ—ˆλ‹€λŠ” 생각이 λ“ λ‹€.
  • μ—λŸ¬λ₯Ό λ§Œλ‚¬μ„ λ•Œ λ„ˆλ¬΄ λ‹Ήν™©ν•˜μ§€ 말고, 쑰금 더 μ—λŸ¬λ©”μ‹œμ§€λ₯Ό 쒋아해봐야겠닀!!😘 ν•΄κ²° 방법을 μ°ΎλŠ” 과정을 쑰금 더 잘 정리할 수 있게 κ³Όμ •κ³Ό 좜처λ₯Ό ν™•μ‹€νžˆ 정리해야겠닀!
  • node μ—…λ°μ΄νŠΈλ‘œ 인해 생긴 문제라고 μƒκ°λ˜μ–΄, μ—…λ°μ΄νŠΈ 방법에 κ΄€ν•΄ μ’€ 더 찾아보고 정리해 놓아야 κ² λ‹€.

πŸ‘€ Reference

profile
λ°± λ²ˆμ„ 보면 ν•œ κ°€μ§€λŠ” μ•ˆλ‹€ πŸ‘€

0개의 λŒ“κΈ€