다이나믹임포트 [ node.js 교과서 ]

2023. 4. 10. 15:49node.js

본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다.

 

- CommonJS 모듈에서는 다이나믹 임포트(동적불러오기) 가 되는데 ES 모듈에서는 다이나믹 임포트가 안된다.

- if 문 안에 require 를 넣는 것을 말한다.

// dynamic.mjs

const a = true;
if (a) {
  const m1 = await import("./func.mjs");
  console.log(m1);
  const m2 = await import("./var.mjs");
  console.log(m2);
}
[Module: null prototype] { default: [Function: checkOddOrEven] }
[Module: null prototype] { even: '짝수입니다.', odd: '홀수입니다.' }

- import 라는 함수를 사용해서 모듈을 동적으로 불러올 수 있다.

- import 는 Promise 를 반환하기에 await 이나 then 을 붙여야 한다.

- 위에도 async 함수를 사용하지 않았는데 ES 모듈의 최상위 스코프에서는 async 함수 없이도 await 할 수 있다. ( CommonJS 모듈은 안됨)

- export default 의 경우 import 할 때도 default 라는 속성이 이름으로 import 된다.

- CommonJS 모듈에서 module.exports 한 것도 default 라는 이름으로 import 된다.