Node.js에서 ES 모듈(import/export) 사용하기

Hyunwoo Seo·2022년 8월 18일
0

Node.js

목록 보기
2/5
post-thumbnail

자바스크립트 개발을 하다보면 requireimport 키워드를 통해 외부 라이브러리를 불러오는 코드를 자주 보게 된다.

require 는 NodeJS에서 사용되고 있는 CommonJS 키워드이고, importES6(ES2015) 에서 새롭게 도입된 키워드다.

const moment = require("moment");
import moment from "moment";

예를 들어, 위 2줄의 코드는 기본적으로 동일한 작업을 수행한다.

CommonJS 방식은 require 키워드를 사용하여 변수를 할당하듯이 모듈을 불러오는 반면에, ES 방식은 import 키워드를 사용하여 좀 더 명시적으로 모듈을 불러오고 있다.

CommonJS 방식은 nodejs 에서도 기본값으로 채택하고 있고 자료도 CommonJS 방식으로 된 것이 더 많아서 ES 방식을 정리해본다.


ES 방식은 React 에서 흔히 사용하는 import, export 를 그대로 사용하면 되서 작업할 때 혼동이 적고 알아보기도 쉽다.

Node.js 에서 ES 모듈을 사용하려면 확장자를 mjs 로 바꿔서 사용하거나, package.json 에서 type 을 바꾸는 것이다.

부분적으로 ES 모듈을 적용할 경우엔 mjs 로 확장자를 바꿔 사용하는 것이 빠르고 좋다.

애초에 프로젝트 자체를 ES 모듈로만 적용하고 싶다면 package.json 에서 typemodule 로 바꾸면 된다.

//test.mjs
export function Increase(a, b){
    return a + b
}

//check.mjs
import { Increase } from './test.mjs';
console.log(Increase(1,2));

여기서 꼭 mjs 확장자까지 다 붙여줘야 한다.


//package.json
{
    type: "module",
}

이렇게만 바꿔주면 확장자를 mjs 로 바꿀 필요없이, 사용할 수 있다.

0개의 댓글