CommonJS

안정태·2021년 5월 4일
0

Study

목록 보기
20/33

CommonJS

  • 모든 모듈은 자신만의 독립적인 영역이 있어야 한다.
  • 모듈 정의는 전역객체인 exports 객체를 이용한다.
  • 모듈 사용은 require 함수를 이용한다.

범용적인 목적으로 JavaScript를 사용하지 위한 필수 과제는 모듈화이다. Node.js도 이런 모듈화 작업덕에 탄생할 수 있었다. 이러한 모듈화를 가능하게 해주는 것이 바로 CommonJS다.

사용법

// foo.js
exports.foo = () => {}

// bar.js
module.exports.bar = () => {}

// script.js
const foo = require('./foo')
const bar = require('./bar')

exports 혹은 module.exports를 통해서 모듈화를 정의할 수 있다. 그리고 이 모듈을 사용할 스크립트에서 require('파일 경로')를 통해서 사용할 수 있다.

module.exports와 exports

exportsmodule.exports 은 두 가지 모두 같은 역할을 한다. 굳이 나누자면 exportsmodule.exports 의 숏컷이다. 다시 말해 사용을 도와주는 역할에 지나지 않고 module.exports를 참조할 뿐이다.

물론 exports를 통해서 모듈화를 정의는 가능하지만 만약 두 개를 혼용해서 사용하면 module.exports에 정의된 값이 우선순위를 갖게된다.

때문에 위와 같은 문제를 야기하지 않기 위해서 exports 혹은 module.exports 둘 중 하나만을 사용해서 코드를 작성하는 것이 좋다.

profile
코딩하는 펭귄

0개의 댓글