https://www.daleseo.com/js-node-es-modules/ 를 공부한 내용을 정리하였습니다!
npm init으로 nodeJS를 만들면 기본적으로 CommonJS(require) 방식으로 모듈을 불러올 수 있다.
하지만 필요에 따라 ES Module(import/export) 방식으로 모듈을 불러와야 할 때가 있는데 그럴 때 사용할 수 있는 방법을 알아보자.
프로젝트 전체적으로 ES Module 방식을 적용하는게 아니라 파일 단위로 적용이 필요하다면 간단하게 파일 확장자를 .mjs로 변경하고 파일 내에서 import/export 키워드를 사용하여 모듈을 import/export 하면 된다. 중요한 것은 mjs로 작성한 모듈을 import 할 때 확장자까지 꼭 포함해서 import 해야한다는 것이다.
// time.mjs
import moment from "moment";
export function now() {
return moment().format();
}
//time.test.mjs
import { now } from "./time.mjs";
console.log("Now:", now());
파일 단위가 아닌 프로젝트 전체 단위로 ES Module 방식을 적용하기 위해서는 package.json 파일에서 설정해주면 된다.
// package.json
{ 생략...,
"type": "module"
}
이렇게 하면 확장자가 mjs가 아니라 js로 해주어도 프로젝트 전체에서 import/export 키워드를 사용가능하다!