...
nodemon 모듈
Node.js 개발 시 자바 스크립트 파일들을 수정 할때마다 매번 ctrl+c를 통해 node를 종료 후 다시 실행해줘야 하는 번거로움 이 있었습니다.
하지만 파일들을 모니터링하고 있다가 수정될 경우 자동으로 서버를 재실행시켜주는 스크립트 모니터링 유틸리티 nodemon를 이용하면 번거로움이 상당히 줄어듭니다.
nodemon 설치
npm 1.0이상을 사용할 경우 nodemon은 커맨드라인에서 명령어를 사용할 것이기 때문에 -g 옵션을 붙혀서 글로벌로 설치를 합니다.
$ npm install nodemon -g
nodemon 사용법
기존에 node.js 애플리케이션을 실행할 때 node app.js와 같이 실행해 주었다면 nodemon 명령어를 사용해서 다음과 같이 실행해 주면 됩니다.
그후 app.js를 수정하고 저장해도 nodemon이 자동으로 서버를 재실행 시켜주는것을 알수있습니다.
// app.js
var http = require('http')
http.createServer((req, res) => {
res.write('hello world')
res.end()
}).listen(8000)
파일이 있는 디렉토리에서 nodemon 실행
$ nodemon app.js
[nodemon] 1.18.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node app.js`
한번 서버의 코드를 수정해보면, 서버가 알아서 자동으로 다시시작하는 것을 확인할수 있습니다.
[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
수동 다시시작
만약 수동으로 서버를 다시 시작하고 싶은 경우에도 서버를 끄고 다시 시작할 필요가 없습니다.
서버가 실행된 상태에서 rs <enter> 입력으로 서버를 바로 다시 시작할 수 있습니다.
$ rs
[nodemon] starting `node app.js`
딜레이 실행
여러파일을 한꺼번에 수정해서 리스타팅에 약간 딜레이를 주려면 --delay 옵션을 사용해서 nodemon --delay 10 app.js를 실행해 주면 파일이 수정되고 10초후에 리스타팅을 하게 됩니다.
$ nodemon --delay 10 app.js
여러 디렉토리 실행
기본적으로 nodemon은 현재 작업 디렉토리를 모니터링 하는데, 만약 여러개의 디렉토리의 파일을 구동하는경우
--watch 옵션을 사용하여 특정 경로를 추가하면 됩니다.
$ nodemon --watch src/ src/index.js # src/ 디렉토리에서 코드변화가 감지하면 재시작을 하도록 설정하고, src/index.js 를 실행
package.json 간편 설정
간편하게 npm start 명령어로도 nodemon을 실행시킬수 있습니다.
package.json 파일에 다음과 같이 script색션에 등록하면 됩니다.
...
"scripts": {
"start": "pm2 ./bin/www", // 배포용 실행
"start:dev": "nodemon ./bin/www" // 개발환경 실행
}
$ npm start --dev
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.