본문 바로가기

Backend/NestJS

zsh: command not found: nest 해결방법

맥북 터미널을 이용해 프로젝트 경로에서 프로젝트를 생성하려고 하니 자꾸 아래와 같은 에러가 떴다. 

난 Nest 다 설치해서 쓰고 있었고, node와 npm 둘다 설치해서 쓰고 있는데 뭐가 문제인가..! 

zsh: command not found: nest

 

계속해서 시도해본 방법은 다음과 같다. 

1) 아래의 명령어를 입력하면 에러가 뜬다. 

프로젝트 경로이름 npm install -g @nestjs/cli
npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/
npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/
npm ERR! Cannot read properties of null (reading 'pickAlgorithm')

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/내 맥북이름/.npm/_logs/2023-08-17T11_13_59_644Z-debug-0.log

뭔가 npm의 무언가가 덜 업데이트 되었나.. 터미널에서 안내하는대로 

 https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/ 사이트에 방문해보았다. 

그래도 안된다. 

 

2) 다음과 같은 명령어를 터미널에 입력 

프로젝트경로이름 npm config set registry https://registry.npmjs.org/

npm registry는 뭐지 하고 좀더 찾아보았다.

 

npm의 기본 레지스트리는 https://registry.npmjs.org 인데, npm 패키지 저장소인 registry로 트랜잭션하는 과정에서 HTTP 프로토콜이 사용되었거나 오래된 HTTP 인증서 버전이 사용되어 위에서 안내해준대로 npm 최신버전으로 바꾸라는 것이라고 한다. 

 

3) @nestjs/cli 설치 

프로젝트경로이름 npm install -g @nestjs/cli

4) cli를 설치했으니 nest 명령어를 입력하여 프로젝트 만들기. 

my-nest-project 라는 NestJS 프로젝트를 만들어줬다.  

프로젝트경로이름 nest new my-nest-project

 

막상 zsh: command not found: nest 라고 에러가 떴지만, nest의 문제라기보다는 https 프로토콜을 사용하지 않았던 npm registry의 구버전 문제였던걸로.. 

 

아무튼 잘 해결되서 다행이다 :)