nodemon을 이용하면 재시작 없이 수정되는 코드를 자동 반영 할수 있다
Node.js 개발 시 자바 스크립트 파일들을 수정 할때마다 매번 ctrl+c
로 node를 종료 후 다시 실행해야하는 번거로움이 있다. nodemon 은 이러한 번거로움을 해결해주는 아주 편리한 모듈이다.
nodemon 은 node monitor의 약자로, 노드가 실행하는 파일이 속한 디렉터리를 감시하고 있다가 파일이 수정될 경우 자동으로 서버를 재실행시켜준다.
개발용으로 local에 설치
npm i nodemon --save-dev
# 또는
npm i -D nodemon
보통 개발 단계에서 주로 사용하기 때문에 -D 옵션으로 주로 설치한다.
전역에 설치
npm i -g nodemon
전역에 설치하는 경우 permission이 필요하다는 문구가 나오기도 한다.
Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/nodemon'
또는
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
이러한 에러를 만나면 sudo
키워드로 관리자 권한을 주면된다.
sudo npm i -g nodemon
비밀번호를 누르고 엔터치면 설치가 된다.
개발용으로 잘 설치가 되면,
package.json 파일 devDependency에 nodemon이 생긴 것을 확인할 수 있다.
이때 nodemon 파일이름
으로만 터미널에서 실행시키면 command not found: nodemon 에러가 나올 수 있다.
npx nodemon 파일이름
npx nodemon 파일이름
으로 실행시키면 정상적으로 동작한다.
또는 package.json 파일의 script 에 명령어를 추가해서 명령어로 실행시킬수도 있다.
"scripts": {
"start": "nodemon 파일이름"
// 또는 "start": "npx nodemon 파일이름" 로 적어도 된다.
},
모듈을 설치 할 때 -g
옵션으로 설치하면해 전역에 설치가 되어, nodemon을 어디서든지 터미널에서 사용할 수 있게 되지만,
(package.json에는 추가가 안되요. 이미 추가되어 있었으면 그대로 있구요)
-D
옵션으로 개발용으로 설치 후
package.json의 script를 통하지 않고 터미널에 바로 nodemon 명령어를 사용하면, 전역에 설치한 것이 아니기 때문에, 컴퓨터는 nodemon이 뭔지 알 수 없어 command not found: nodemon
에러가 발생하게 된다.
한편, package.json의 script로 nodemon을 실행하면 node_modules에 설치된 nodemon을 가져다가 사용하게 되므로 문제 없이 실행이 되게 된다.