본문 바로가기

javascript/nodejs

[nodejs] esmodule 사용 -> "type" : "module"

 npm init을 통해 package.json을 생성하면 require 및 exports을 이용한 CommonJS을 이용하게 된다.

 CommonJS 환경에서만 지원하는 환경변수들 (__dirname, __filename 등)이 있기도 하고, 기존 방식에 하자가 있어서 esmodule 방식이 나온 것은 아니기 때문에 굳이 esmodule 방식을 이용할 필요는 없으나, 최근 많이 이용하는 대부분의 프레임워크들이 esmodule 방식으로 사용되므로 프로젝트 내 일관성을 위해 채택하는 것도 좋다.

 프로젝트 내에서 esmodule 방식을 이용하기 위해서는 package.json 내 type 설정을 변경해야 한다.

{
//some settings ...

	"type":"module"
}

 type은 "module" 및 "commonjs" 설정이 가능하다. 해당 설정이 명시되지 않으면 기본적으로 "commonjs" 로 지정되어 require 및 exports 구문을 이용하게 된다. "module" 설정은 프로젝트 내에서 esmodule 시스템을 이용한다고 지정한다.