본문 바로가기
코딩코딩/웹개발

[nodejs, npm] npm install이 너무 느릴 때

by g0n1 2022. 3. 25.
728x90

문제 상황

npm으로 어떤 패키지를 설치하던 저 상태에서 멈추고, 설치에 너무 오랜 시간이 걸린다. 가장 슬픈 것은 대부분의 경우 TIMEOUT으로 설치도 못한다는 것...

문제 원인

npm이 이상하거나, 네트워크가 이상하거나, node가 이상하거나, 내가 wsl2 설정에서 메모리를 너무 적게 줬다거나 하는 이유가 있을 것 같다. 하지만 검색해봐도 정확한 원인은 알 수 없었다. (간혹 wsl의 속도가 윈도우에서의 속도에 한참 못 미치는 사람도 있었지만 나의 경우에는 네트워크 속도도 정상적이었다)

해결 방법

npm이나 node를 재설치하거나 proxy설정을 건드리거나 해서 해결하는 것 같은데, 나는 재설치하거나 고치려고 하다 더 안 좋아지는 경우가 더 많았고, 시간도 그렇게 많지 않아서 docker를 이용해 해결하기로 했다. docker의 v옵션으로 현재 저장공간을 컨테이너 안에 bind mount한 다음, 컨테이너 내부의 npm을 사용하는 것이다.

# 내 앱이 담겨있는 컨테이너를 띄운다
docker run -it -d -p 3000:3000 -v 로컬절대경로/my-app:/my-app node:16.13.1

# docker ps를 입력하고 거기서 나오는 컨테이너 아이디를 복사한다.
docker ps

# 이렇게 하면 컨테이너 내부에 들어가진다.
docker exec -it 컨테이너ID /bin/bash

# 내가 설치하고 싶은 패키지를 설치한다.
# -v 옵션으로 로컬과 컨테이너 내부의 저장공간이 연결(공유)되어있기 때문에 로컬에도 패키지가 잘 설치된다.
npm install pg typeorm @nestjs/typeorm --save

이렇게 하니 npm이 가만히 멈추지도 않고, 잘 설치되었다. 

이후 개발을 컨테이너를 띄어놓고 해도 되고 아니면 설치할 때만 이렇게 해서 설치해도 된다.

다음엔 배포를 해보겠습니당.

바위

728x90

댓글