js 파일에서 cjs 파일을 import 할 수 있는 이유는 뭘까?
- 자바스크립트 언어 자체는, ESM과 CJS 모듈 시스템 간의 직접적인 호환성을 제공하지 않는다.
- 이 두 모듈 시스템은 서로 다른 시기에 다른 목적으로 개발 되었음.
- 따라서 CJS 를 ESM 형식으로 import 하기 위해서는, 다음과 같은 환경 및 도구의 지원이 필요할 것으로 예상됨.
- 런타임 환경
- Node.js : 실행 시, 모듈 변환 및 호환성 레이어를 제공
- 브라우저: 대부분 직접적인 cjs import 를 지원하지 않음
- 빌드 도구 및 번들러
- Webpack,Rollup,Parcel 등: 빌드 과정에서 모듈 변환
- Babel: 트랜스파일 과정에서 모듈 형식 변환
- 런타임 환경