CJS의 경우 require()와 module.exports를 사용하며, ESM은 import와 export를 사용한다.
// test1.js
function MSG1(){
console.log('1');
}
function MSG2(){
console.log('2');
}
export {MSG1, MSG2}
위 코드를 보면, test1.js에서 MSG1, MSG2의 함수를 export 한다. export는 다른 곳에서 쓸 수 있게 내보내 주는 것.
export 키워드 뒤에는 내 보낼 함수 혹은 변수명을 {}괄호로 묶어줘서 보낸다. 이름을 꼭 맞춰주어야 한다.
// test2.js
import {MSG1, MSG2} from './test1'
MSG1(); // '1'
test2.js 파일에서 test1.js에서 내보냈던 함수 두개를 가져오는데, import 키워드를 쓰고 뒤에 해당 함수명을 가져온다.(중괄호 사용은 jsx문법) 뒤에 from 키워드를 쓰고 해당 함수의 파일 경로를 적어준다.
그러면 위와 같이 함수를 사용할 수 있다.
파일 경로와 함수 및 변수명이 맞아야 한다. 단, export시에 딱 하나만 넘겨줄 경우 빼고!
// test1.js
function MSG1(){
console.log('1');
}
export default MSG1
// test2.js
import MSG3 from './test1'
MSG3(); // '1'