[Node.js] npm this[kHandle] = new _Hash () 에러

Sieun Dorothy Lee·2023년 12월 8일
0

에러 상황

npm start, npm build 등의 명령어를 사용하다 아래와 같은 에러를 만났나요?

검색을 해보니 위와 같은 에러는 node 버전이 달라서 생기는 오류라고 한다.
npm start 또는 build를 하기 전에 npm install을 했을 것이다.
이때, 본인의 컴퓨터에 설치된 node 버전의 npm으로 package.json에 적힌 패키지들이 설치되었을 것인데, 이게 원래 코드(github 코드 주인) 작성자가 코드를 작성할 당시 환경에서의 node 버전과 본인 컴퓨터 환경의 node 버전이 다르고 둘이 호환되지 않아서 생기는 문제.

나의 경우, 인프런 김정환 강사님의 리액트 수업을 들으며 강사님의 코드를 git clone 했다.
나의 컴퓨터 환경은 node 20.9.0, npm 10.x.x를 사용하고 있어서 이 환경으로 npm install을 한 후 npm start를 했더니, 위와 같은 에러를 만났다.
강사님의 환경을 다시 확인해보니 node 14.15.1 이었다.
그럼 나의 컴퓨터에서 node를 삭제하고 낮은 버전으로 다시 깔아야할까?
물론 그렇게하면 문제는 해결될 것이다. 그러나 더 쉽고 간단한 방법이 있다.

문제 해결

(window 환경 기준으로 작성되었습니다.)

간단하게 노드의 버전을 바꿀 수 있는 해결 방법은 바로 nvm이다.
nvm은 node version manager로, 이름 그대로 node 버전을 바꿀 수 있게 해준다.

nvm-window github
위의 링크에 들어가서 nvm-window.exe를 다운받고 실행하면 nvm를 설치할 수 있다.

설치가 되었는지 git bash 또는 terminal에 nvm --version을 쳐서 확인해본다.
분명 설치했는데 없다고 뜬다면, git bash 또는 terminal을 껐다가 다시 켠다.

$ nvm -v # nvm 버전 확인
$ nvm ls # nvm에 의해 설치된 node 버전들과 현재 버전 확인
$ nvm ls available # nvm에서 설치 가능한(스위칭 가능한) node 버전 확인

$ nvm install (원하는 node 버전) # 정확히 14.15.1을 입력해도 되고, 14만 입력하면 14 중 가장 최신 버전을 설치한다
$ nvm use (스위칭하길 원하는 node 버전) # node 버전 변경
$ nvm current # 현재 node 버전 확인

node 버전을 변경
-> 이전에 설치된 node_modules를 삭제
-> 다시 npm install + npm start
과정을 하니 정상적으로 동작한다.

문제 해결 완료!!

참고) nvm에 대한 보다 상세한 설명은 여기서!
https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-NVM-%EB%AA%A8%EB%93%88-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%85%B8%EB%93%9C-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC

profile
성장하는 중!

0개의 댓글