티스토리 뷰
commonJS
- commonJS는 Node.js의 디폴트 모듈 시스템이다.
require()
,module.exports
문법을 사용한다.- commonJS 문법은 런타임에 파싱되므로
require
는 코드 어디에서나 사용할 수 있다. if 문 안에서도, loop 안에서도 사용할 수 있다. - commonJS는 sync하게 하나씩 순차적으로 모듈을 로드하기 때문에 큰 어플리케이션에서는 퍼포먼스 이슈가 있을 수 있다.
ES module (ESM)
- ES module은 자바스크립트 공식 모듈 시스템이고 거의 모든 모던 웹 브라우저가 ES module을 지원한다.
- 다만 Node.js에서는 commonJS가 디폴트였고, ESM은 실험적으로만 제공하다가 v13.2.0 에서부터 ESM을 stable로 제공하기 시작했다.
- ESM은
import
,export
문법을 사용하여 commonJS보다 readable 하다. - ESM의 import문은 항상 파일의 최상단에 위치해야한다.
- ESM은 모듈을 async하게 로드한다.
- ESM을 프로젝트에 적용하려면 js파일을 mjs확장자로 바꾸어 사용하거나, package.json에
"type": "module"
을 선언해주는 방법이 있다. - React나 Vue는 ESM을 사용하는 대신 하위호환을 맞추기 위해 Babel 트랜스파일러를 사용하여 commonJS로 컴파일한다.
Ref
'공부일지(TIL) > JavaScript' 카테고리의 다른 글
[JavaScript] transpiler vs polyfills (0) | 2022.08.17 |
---|---|
[JavaScript] Browsing Context, BroadcastChannel (0) | 2022.02.16 |
[JavaScript] 렉시컬 환경 (0) | 2021.08.11 |
[JavaScript] Iterable, Array-like (0) | 2021.08.01 |
[JavaScript] Value Equality (0) | 2021.07.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- oracle
- til
- 제네릭스
- package.json
- Java
- CSS
- Redux
- 깃
- 포인터 변수
- 인스턴스
- rxjs
- getter
- jQuery
- 자바
- useEffect
- youtube data api
- linkedlist
- Data Structure
- 리덕스
- 알고리즘
- Conflict
- 개발 공부
- GIT
- c언어
- Session
- this
- SQL
- JavaScript
- Prefix Sums
- react
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함