[Node.js] 런타임에 module 동적으로 import 하기

Woong·2024년 7월 1일
0

Nest.js, Node.js

목록 보기
29/30
  • Node.js import문은 정적으로만 사용할 수 있어 변수를 이용해 런타임에 동적으로 경로를 지정할 수 없다.

  • import() 문을 통해 런타임에 동적으로 경로를 지정할 수 있다.

    • Promise 를 반환하기 때문에 이에 따른
    • 함수같은 문법이지만 import 자체는 키워드
// config/local.js
export default {
  db: 'local-db-url',
  port: 3000,
  // 기타 설정
};

// config/dev.js
export default {
  db: 'dev-db-url',
  port: 3001,
  // 기타 설정
};

// config/production.js
export default {
  db: 'production-db-url',
  port: 80,
  // 기타 설정
};
const env = process.env.NODE_ENV || 'local';
  try {
    const configModule = await import(`./config/${env}.js`);
    return configModule.default;
  } catch (error) {
    console.error(`Error loading config for environment: ${env}`, error);
    throw error;
  }

reference

0개의 댓글