본문 바로가기

Node

다이나믹 임포트

다이나믹 임포트

  • CommonJS 모듈에서 사용됨
  • 동적 불러오기, 조건부로 모듈을 불러오는 방식을 말함


dynamic.js

const a = false;
if(a){
    require('./func');
}
console.log('성공');

여기서 a는 false기 때문에 require('./func');는 실행되지 않음. 

 

이렇게 조건부로 모듈을 불러오는 것을 다이내믹 임포트라고함

 

mjs에서는 위의 방식으로는 불가능

 

mjs에서는 아래처럼

const a = true;
if(a){
    const m1 = await import('./func.mjs');
    console.log(m1);
    const m2 = await import('./var.mjs');
    console.log(m2);
}

 

mjs에서는

- import라는 함수를 사용하여 모듈을 동적으로 불러올 수 있음

- import는 Promise를 반환하기에 await나 then을 붙여야함

 

위 코드에서는 async (안시) 함수를 사용하지 않았는데, ES 모듈(mjs)의 최상단 스코프에서는 async 함수 없이도

await 할 수 있음.

 

단, CommonJS 모듈에서는 안됨!!

 

 

 

 

 

'Node' 카테고리의 다른 글

노드 내장 객체 process  (0) 2024.01.29
노드 내장 객체(global, console, 타이머)  (0) 2024.01.28
MAP과 SET, WEAKMAP, WEAKSET  (0) 2024.01.24
for await(변수 of 프로미스 배열)  (0) 2024.01.24
async function  (0) 2024.01.24