본문 바로가기
NodeJS

NodeJS 3강 : Babel7, nodemon

by NodeMan 2019. 10. 21.

NodeJS 3강 : Babel7, nodemon

======================================================================

본 강의에서는 es6 문법으로 작성하기 위해서 Babel을 사용합니다.

 

 

Babel

Babel이란 자바스크립트 컴파일러입니다.

NodeJS에는 결국 자바스크립트를 쓰는건데 Babel이라는 컴파일러를 사용해야하는가?

저도 NodeJS 문서를 전부 찾아보진 못했으나 es5 문법을 지원하고 예외로 애로우 함수를 사용할 수 있더군요.

 

Babel7 설치

npm install --save-dev @babel/core @babel/node @babel/preset-env

위의 모듈을 설치해줍니다.

그리고 package.json 위치에 .babelrc 파일을 만들어야합니다.

 

.babelrc

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

그리고 터미널에서 이렇게 실행시키면 정상 작동 됩니다.

npx babel-node .

당연히 es6문법을 사용하지 않았기 때문에 정상 작동이 될것입니다.

 

그리고 Babel만 사용한다고 자바스크립트의 모든 최신 문법이 사용되는건 아닙니다.

따로 @babel-polyfill 모듈을 사용해야합니다.

 

하지만 지금은 따로 polyfill 모듈을 사용하지 않겠습니다.

app.js

 

console.time('Server ON Time');
import express from 'express';
const app = express();

class component {
    constructor(port, ip, route) {
        this.port = port;
        this.ip = ip;
        this.route = route;
    }

    routing(app) {
        for(var i = 0; i < this.route.path.length; i++) {
            app.get(this.route.path[i], function(req, res) {
                res.send('nodeman');
            });
        }
    }

    listen(app) {
        app.listen(this.port, this.ip, () => {
            console.timeEnd('Server ON Time');
        });
    }
}

const server = new component(3000, '127.0.0.1', { path: ['/', '/node'] });

server.routing(app);
server.listen(app);

2강에서 작성한 app.js를 es6문법으로 다시 작성했습니다.

 

nodemon

지금 까지 코드를 작성하면 서버를 다시 껏다 켜야하는 번거로움이 있습니다.

이 번거로움을 nodemon이라는 모듈이 해결해줍니다.

nodemon 모듈은 실행된 앱을 기준으로 변경사항이 있으면 껏다 켜주는 역할을 대신 해줍니다.

npm install --save-dev nodemon

nodemon --exec npx babel-node .

모듈이 설치가 됐으면 nodemon 명령어를 통해서 실행하면 서버가 실행됩니다.

그리고 nodemon이 정상적으로 동작되는지 확인을 위해서 Server ON Time을 Server ON Time2 라고 수정 후

저장 시켜보세요.

정상 동작이 됐다면 다시 실행이 될겁니다.

 

그리고 이제 nodemon 명령어가 추가되면서 서버를 키는 실행 명령어가 너무 길어졌습니다.

이 실행 명령어를 package.json의 scripts에 등록하면 npm 명령어를 통해서 한번에 실행이 가능합니다.

 

> 3강을 마치며

이제 설정 부분은 다 끝났습니다. 다음 강의 부터 본격적으로 백엔드를 할 수 있겠네요....

 

GitHub URL : https://github.com/BlackPing/node

'NodeJS' 카테고리의 다른 글

NodeJS 5강 : MySql 연동  (0) 2019.10.23
NodeJS 4강 : express middleware  (0) 2019.10.23
NodeJS 2강 : express 시작하기  (0) 2019.10.21
NodeJS 1강 : 개발환경 구성  (0) 2019.10.20
NodeJS 0강 : 소개  (0) 2019.10.20

댓글