ESM(ECMscript Modulse)은 자바스크립트의 표준화 모듈 시스템입니다. 파일간의 변수, 함수, 객체등을 공유 하기위해 가져오기 내보내기 문을 사용합니다
1. 정의
ESM은 ES6(ES2015)에서 도입된 모듈 시스템으로. 자바스크립트 파일을 모듈로 관리하여 각 파일이 독립적인 스코프를 가집니다.
2. 사용법
모듈 내보내기: export 키워드를 사용합니다.
// myModule.mjs
export const myVariable = 42;
export function myFunction() {
console.log("Hello from myFunction!");
}
모듈 가져오기: import 키워드를 사용합니다.
// main.mjs
import { myVariable, myFunction } from './myModule.js';
console.log(myVariable); // 42
myFunction(); // "Hello from myFunction!"
3.파일 확장자
ESM 모듈은 .js 파일 확장자를 사용하지만, Node.js에서는.mjs 확장자를 사용합니다. package.json 파일에 "type: "module""을추가하면 .js 확장자를 ESM으로 인식합니다.
package.json 설정
{
"name": "my-esm-project",
"version": "1.0.0",
"type": "module", // 모듈설정
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "",
"license": "ISC"
}
4.비동기 로딩
ESM은 비동기적으로 모듈을 로드 하며 import() 함수를 사용하여 동적으로 모듈을 가져올 수 있습니다.
import('./myModule.js').then(module => {
module.greet();
});
5. 전역 스코프와 Strict Mode
ESM은 전역스코프를 공유하지 않으며, 모든 모듈은 자동으로 strict mode로 실행합니다.
관련자료
https://idocleancode.tistory.com/436
[Node.js] 학습 로드맵
Node.js 소개Node.js 이란? 참고자료https://roadmap.sh/nodejs Node.js Developer Roadmap: Learn to become a modern node.js developerLearn to become a modern node.js developer using this roadmap. Community driven, articles, resources, guides, i
idocleancode.tistory.com