JS는 모듈이 존재하지 않았다. (독자적인 파일 스코프가 X)
Node.js에서는 CommonJS를 따르고 있다. (ES 표준은 아니다.)
ES6에서 모듈인 EMS
이 추가되었다.
<script type="module" src="app.mjs"></script>
로 사용한다.type="module"
: 모듈로써 동작함을 의미app.mjs
: 일반 JS파일이 아닌 ESM임을 명시하기 위해 사용foo.js와 bar.js를 HTML에서 로드한다면
foo.mjs와 bar.mjs를 HTML에서 모듈로써 로드한다면
변수, 클래스, 함수 등을 외부에 공개하기 위해 사용한다.
사용방법
export
를 붙여 사용한다.export {내보낼 요소들}
로 하나의 객체로 구성하여 공개할 수 있다.공개된 타 모듈의 식별자를 자신의 모듈 스코프로 가져오기 위해 사용한다.
import {가져올 요소들} from "파일 경로"
import문에 의해서 로드되는 파일(모듈 파일)은 script 태그로 로드하지 않아도 된다.
사용방법
import * as lib
: 모든 export요소들을 lib 객체의 프로퍼티로 가져온다.import {pi as PI, ...}
: pi를 PI로 가져온다.export default
: 하나의 모듈에서 하나의 파일만을 내보낼 때 사용가능
export default x => x*x;
import square from "~~.js"