Node 모듈은 전쟁중 : CommonJS vs ESM
(redfin.engineering)CJS와 ESM은 구현체가 전혀 다름. 서로 호출은 가능하지만 귀찮음.
- CJS : require() 와 module.exports
- ESM : import 와 export
둘을 상세히 비교하고, 왜 다르고 연동이 귀찮은지 내부까지 설명한 글
작성자가 노드 라이브러리 개발자에게 권하는 가이드라인
1. CJS 버전을 제공하고
2. CJS 위에 thin ESM Wrapper를 제공한뒤
3. package.json 에 exports 추가
물론 ESM이 더 최신 방법이지만, 변경사항이 많고 CJS 위에 ESM 래퍼를 제공하는게 더 쉬우니 이게 현재로선 가장 나은 방법인거 같다고.