본문 바로가기

Nodejs

Nodejs 개발환경 구성(nodemon, babel-node)

반응형

※ 나는 Nodejs 버전 관리를 위해 NVM 을 사용한다. NVM 설치 및 사용방법은 아래 링크를 참고.

https://velog.io/@ejchaid/윈도우에서-nvm-설치

 

[node.js]윈도우에서 nvm 설치

nvm: node.js 버전이 다른 개발환경에서 필요시 version을 변경하기 위해 NVM(Node Version Manager)을 설치 제어판에서 기존 node.js 제거 최신버전의 NVM을 설치 (setup으로 설치) 다운로드 : https://github.com/coreybu

velog.io

 

내 환경(참고)

 

 

Nodejs 의 서버를 구동하기 위해서 사용하는 명령어는

$ node server.js

일 것이다.

 

개발 시 소스변경 할 때마다 명령어를 다시 치기는 너무 번거롭다. 

이 때문에, 소스 변경감지 시 노드 재구동을 해주는 nodemon 이라는 패키지가 존재한다.

 

패키지 설치 (구동 시에만 필요하기 때문에 devDependencies 에 추가)

## npm
$ npm i -D nodemon

## yarn
$ yarn add -D nodemon

 

사용법

$ nodemon --watch ./ --exec node server.js

(global 설치가 아닐 시)

$ ./node_modules/.bin/nodemon --watch ./ --exec node server.js

or

## ./nodemon.json

{
  "watch": ["./"],
  "exec": "node server.js",
  "ext": "js json yaml",
  "ignore" : ["./logs/"]
}
$ nodemon

(global 설치가 아닐 시)

$ ./node_modules/.bin/nodemon
  • watch : 서버 재시작을 위한 변경 감지 경로
  • exec : nodemon 수행 명령
  • ext: 변경 감지할 확장자
  • ignore: 변경 감지 제외

 

Nodejs 를 개발하다보면 ES6 이상의 문법은 피할 수 없다. 이상없이 서버를 구동시키려면 개발환경에서  babel-node 로 서버를 구동시키는 방법이 있다.

 

babel 적용을 위해 필요패키지를 설치해야한다.

##npm
$ npm i -D @babel/core @babel/node @babel/preset-env

##yarn
$ yarn add -D @babel/core @babel/node @babel/preset-env

설치 이후 babel 설정 파일 추가

## ./.babelrc

{
  "presets": [
    "@babel/preset-env"
  ]
}

실행

$ babel-node server.js

babel-node 명령어를 못찾는다고 한다면...(global 설치가 아닐 시)

$ ./node_modules/.bin/babel-node server.js

노드모듈에서 직접 지정 후 실행시키면 된다.

 

위와 같이 하면 이상없이 개발환경에서의 노드서버를 구동할 수 있다.

 

개발환경에서는 프로젝트의 package.json 의 run script에 등록해놓는다.

## ./package.json
...
  "scripts": {
	"server:dev": "nodemon --watch ./ --exec ./node_modules/.bin/babel-node server.js"
   }
...

이 후 npm run 명령어로 해당 스크립트를 실행하면 node 서버가 구동된다.

$ npm run server:dev

 

참고소스

https://github.com/sbjang123456/nodejs-sequelize-pm2.git

 

sbjang123456/nodejs-sequelize-pm2

pm2 배포 환경 설정. Contribute to sbjang123456/nodejs-sequelize-pm2 development by creating an account on GitHub.

github.com

반응형