이것 저것

module.exports와 exports

taehyeki 2022. 4. 5. 09:47
const module = { exports: {} }; 

const exports = module.exports; 

function require(path) {

... return module.exports; // require() 함수의 리턴값 

}

전에 module.exports를 사용하면 하나밖에 안되고, exports를 사용하면 여러개가 된다고만 얼핏 알고 있었는데

사실 구조자체가 이러했던 것이다.

module.export = { }는  obj자체를 바꿔버리기때문이고.

exports.abc = 3 이런식으로 하면 exports obj안에 key,value를 집어 넣는 것이었다.

 

module.export는 하나의 큰 obj로 설정! (큰거 한개)

exports는 각각의 obj로 설정! (작은거 여러개)

 

 

commonJS는 위의 방식을 사용하여

es6에서는 export export default 를 사용하는 것 같다.

같은 방식으로 export { obj, func } 이런식으로 괄호로 내보내고

import할 때도 import { obj, func } from '~~~' 여기서 export한 이름과 import한 이름이 반드시 같아야함!!!

그렇지만 export default는 하나만 보낼 수 있고 import할 때 괄호도 필요없고 이름도 아무거나 정할 수 있다.