Frontend

CJS와 ESM

냔지 2024. 2. 7. 23:47

모듈 시스템

개발하는 애플리케이션의 크기가 커지면 언젠간 파일을 여러 개로 분리해야 하는 시점이 온다. 이때 분리된 파일 각각을 모듈(module)이라고 부른다. 필요한 모듈을 불러올 수 있게 해준다거나 코드를 모듈 단위로 구성해주는 방법을 만드는 등의 역할을 모듈 시스템이 지원한다. Node.js에는 CommonJS(CJS), ECMAScript Modules(ESM)이라는 두 가지 모듈 시스템이 존재한다.

 

CJS

  • requiremodules.export를 사용한다.
  • module loader가 동기적으로 작업을 한다.
  • Tree shaking이 어렵다.

ESM

  • importexport를 사용한다.
  • module loader가 비동기적으로 작업을 한다.
  • Tree shaking이 쉽다.

Module Loader

요청된 모듈을 찾아 불러오는 역할을 한다.

[작성중]

 


Reference
[1] https://ko.javascript.info/modules-intro

[2] https://toss.tech/article/commonjs-esm-exports-field