[Node.js] ECMAScript Module / commonJs Module

김민재·2023년 10월 31일

Node.js

목록 보기
10/36

자바스크립트는 대표적으로 CommonJS, ES6(EX2015)방식으로 모듈 시스템을 관리한다.

ECMAScript Module(Javascript의 표준)

export { read }; 이렇게 내보낸 후에,
import { send } from './request.js'; 이렇게 가져올 수 있다.
  • package.json에서 "type" : "module"로 바꿔줘야한다. node_module을 사용하지 않는다면 파일 확장명을 mjs로 바꿔주면 된다.

  • 브라우저 환경에서 비동기 로드를 지원한다. 이는 브라우저에서 모듈을 로드할 때 페이징 로딩 속도를 저하시키지 않기 때문이다.

  • 최상단에 import를 하기 때문에, 코드의 가독성을 높이고, 모듈 간의 의존성을 명확하게 한다.

CommonJs Module(Node.js의 표준)

module.exports = { read }; 이렇게 내보낸 후에,
const { read } = require('./request.js'); 이렇게 가져올 수 있다.
  • package.json에서 일반적으로 type을 쓰지 않거나, "type" : "commonJS"라고 적어주면 된다. 또는, cjs 파일명

  • 동기적으로 모듈을 로드하기 때문에, 서버 사이드 렌더링과 같은 환경에서 유리하다. 서버 사이드에서는 모든 모듈이 로드된 후에야 코드가 실행되기 때문이다.

특징CommonJSES Module
로드 방식동기적비동기적
트리 셰이킹어려움용이
사용 환경서버 사이드브라우저
키워드require, exportsimport, export
  • 트리 셰이킹: 사용되지 않는 코드를 제거하여 번들 크기를 줄이는 기술

공통점: CommonJs와 ECMAScript 둘 다, 처음에는 파일을 읽어오고, 두번째부터는 캐시에 저장을 하고 캐싱을 한다.

profile
개발 경험치 쌓는 곳

0개의 댓글