[TIL] Day 29 : 패키지가 설치 되었는데도, zsh: command not found 에러가 뜨는 문제

Q·2024년 5월 27일

TIL

목록 보기
30/59

문제 발생

폴더구조가 src/app.js 처럼, app.js가 다른 폴더 안에 들어있는 경우에
nodemon이 잘 설치 되어있는데도 nodemon src/app.js 를 실행했을 때
zsh: command not found: nodemon 이라는 오류가 뜨는 문제가 있다.

문제 원인

패키지 매니저로 yarn을 사용해서 yarn add global nodemon 처럼 설치를 했다면,
안타깝게도, 명령어와 다르게 global하게 설치가 되지 않은 것이 이유다.

문제 해결 방법

네 가지 해결 방법이 있다.

1. npx 사용해서 nodemon 실행

npm이 node.js package manager라면
npx는 node.js package executer이다.
즉, node package의 실행을 도와주는 도구이다.
npx nodemon src/app.js 를 하면 실행이 된다.

2. package.json의 "scripts" 부분에 추가해준다.

package.json 의 "scripts" 부분에 "dev": "nodemon src/app.js" 를 추가해주고,

"scripts": {
	"dev": "nodemon src/app.js"
}

yarn dev 를 실행해준다.

3. 근본적인 해결: nodemon을 global로 설치해준다.

(1) npm install -g nodemon 으로 nodemon을 전역으로 설치해준다.

(2) 그런데, yarn을 이용해서 yarn global add nodemon 으로 설치를 해봤는데 그건 효과가 없었다. 왜냐하면, yarn은 npm과 다르게 global 옵션을 사용하려면 환경 변수나 저장 위치 등의 추가적인 설정을 해주어야 하기 때문이다.

설정을 하지 않은 상태에서는, global로 패키지를 설치하게 되면 기본적으로 해당 위치에 패키지를 설치하게 된다.

/home/<user>/.yarn/bin/

이를 해결하기 위해서는, terminal의 home 디렉토리에 있는 .zshrc 파일에 들어가서

vim ~/.zshrc

제일 아래에 export PATH="$HOME/.yarn-global/bin:$PATH" 를 추가해준다. 이후 저장하고 나와서 아래 커맨드로 zsh에 저장한다.

source ~/.zshrc

0개의 댓글