본문 바로가기
Mac

갑작스런 npm의 부재 (zsh: command not found: npm)

by for2gles 2021. 7. 15.
반응형

오늘 회사에서 퇴근하고나서, NestJS Websocket을 공부를 위해 NestJS에 Websocket을 설치하던 중 오류가 발생했다.

 

 

nestjs/common 버전이 낮다는것 만 같아 아무 생각 없이

 

npm update -g nestjs

 

위 명령어를 입력했다.

 

아무 문제 없이 업데이트가 완료되었다고 나오고, 다시 npm install 을 통해 @nestjs/websocket 을 다운로드 시도를 했는데,

 

 

위 오류가 발생한것이다.

 

처음 맥북을 쓰면서 리눅스에 프로그램 관리가 어렵다고는 익히 들었던 것 같은데 막상 오류가 발생하니 땀이 뻘뻘났다.

 

예전에 설치할때 아무것도 모르고 homebrew가 아닌 다른 wget인가 독특한 방식으로 다운받았던 것 으로 기억하고있어 node에 오류가 발생하면 큰일이라고 생각했다.

 

이것저것 글이 나오는데, 맨 위 영어는 .zshrc를 수정하라는데 사실 잘 모르겠고,,

 

~/.bashrc 파일은 왜인지 없다..

큰일났다;;;;;

 

두번째 게시글을 보니

 

나에 맞는 문제인게 아닌가

 

npm -g 를 잘못사용한건지는 모르겠는데 꼬인것같다.

 

apt-get 혹은 brew를 통해 uninstall을 해주라고 하여.. 떨리는마음으로 시도했다.

 

뭐라는거지..

뭐 아무튼 

sudo rm -rf /usr/local/Cellar/node/14.4.0

 

명령어를 입력하라고 해서 일단 진행하고 다시 시도하니

 

 

뭔지는 모르겠지만 아까와는 다른 오류와 함께 무엇인가 진행됐다.

아까처럼 멈추면 어떡하나 했는데 아무튼 다행이다.

 

그래서 일단 삭제가 된것은 모르겠으나 진행이 되었으므로 새로 다운로드

 

brew install npm

오랜만에 homebrew 를 사용해서 그런지 업데이트도 한참걸렸다.

 

 

뭐 node에 필요한 프로그램도 함께 설치가 되고

 

뭐 이런오류도 지나갔다.

뭔지는 모르겠는데 유심히 보고있다가 이친구는 꼭 해봐야겠다고 생각하고 넘어갔다.

 

install이 완료되었고

 

 

npm 설치 완료.

 

정말 다행이다..

 

brew link --overwrite node 가 무슨일을 하는지 몰라

 

brew link --overwrite --dry-run node 를 진행해보니

 

컴퓨터에서 작동되는 NODE의 path를 지정해주는것같다.

당연히 방금 설치한 node를 사용하고싶었기에

 

brew link --overwrite node 타입

 

 

또잉?

 

아까 14.17.1의 node는 이전에 설치했던 node 같고, 새로 brew로 설치된 node는 16버전인것같다.

 

예전에 NodeJS 16버전대 최신버전서버에 NestJS 서버를 구동시킨 적 있는데

특정 라이브러리를 설치하라는 오류가 발생하는 이슈가 있어 node는 14버전을 써야한다고 생각하고 있었기에

 

바로 다시 삭제하였다.

바로 삭제해주고

 

14버전대 node 설치해주기

 

다급한 손놀림..

 

아 맞다 아까 brew link 해주면 되지 않을까?

 

brew link --overwrite node@14 해주면 되겠지?

 

 

쨔쟌

 

node와 npm이 복구되었다... 휴

 

복구 완료 후 기존 문제였던

 

npm i --save @nestjs/websockets @nestjs/platform-socket.io

 

진행시 발생하던 문제는 무슨수를 써도 계속적인 오류가 발생했다.

 

  • nest update
  • nest update --force
  • nest update -f -t
  • npm install --save @nestjs/common@latest --force

등등 많은걸 해보았지만 결국에는 오류가 발생하여,,

글로벌로 nestjs를 업데이트 했으니 새로 nestjs 프로젝트를 개설하기로 했다..(기존 설치되어있던 nestjs는 7버전대였습니다. 확인해보니 8버전대로 업그레이드가 되있더라구요,,)

반응형

댓글