자바스크립트는 대표적으로 CommonJS, ES6(EX2015)방식으로 모듈 시스템을 관리한다.
export { read }; 이렇게 내보낸 후에,
import { send } from './request.js'; 이렇게 가져올 수 있다.
package.json에서 "type" : "module"로 바꿔줘야한다. node_module을 사용하지 않는다면 파일 확장명을 mjs로 바꿔주면 된다.
브라우저 환경에서 비동기 로드를 지원한다. 이는 브라우저에서 모듈을 로드할 때 페이징 로딩 속도를 저하시키지 않기 때문이다.
최상단에 import를 하기 때문에, 코드의 가독성을 높이고, 모듈 간의 의존성을 명확하게 한다.
module.exports = { read }; 이렇게 내보낸 후에,
const { read } = require('./request.js'); 이렇게 가져올 수 있다.
package.json에서 일반적으로 type을 쓰지 않거나, "type" : "commonJS"라고 적어주면 된다. 또는, cjs 파일명
동기적으로 모듈을 로드하기 때문에, 서버 사이드 렌더링과 같은 환경에서 유리하다. 서버 사이드에서는 모든 모듈이 로드된 후에야 코드가 실행되기 때문이다.
| 특징 | CommonJS | ES Module |
|---|---|---|
| 로드 방식 | 동기적 | 비동기적 |
| 트리 셰이킹 | 어려움 | 용이 |
| 사용 환경 | 서버 사이드 | 브라우저 |
| 키워드 | require, exports | import, export |