// fileA.js let a = 1; b = 3; exports.sum = function (c, d) { return a + b + c + d; } // fileB.js let a = 3; b = 5; let test = require("fileA"); test.sum(a,b); // 1 + 3 + 3 + 5 = 12
exports는 단순히 module.exports를 참조할 뿐이다. 단순히 짧은 alias.
module.exports와 exports는 같은 객체를 바라보고 있다.
하단 공식 문서에 나온 차에 대한 설명.
exports
A reference to the module.exports that is shorter to type. See the section about the exports shortcut for details on when to use exports and when to use module.exports.
출처: Node.js v10.6.0 Documentation
사용 예시
------------------- 가능한 예시 --------------------------
- module.exports.foo = "bar"
- exports.foo = "bar"
- module.exports.foo = function() {console.log("foo")}
- exports.foo = function() {console.log("foo")}
------------------- 불가능한 예시 --------------------------
// module.exports에 빈 객체만 있게 된다.- exports = {foo : "bar"}
- exports = function() {console.log("foo")}
index.js
require.config({ // 기본 경로와 각 모듈에 해당하는 경로 설정. baseUrl: '/', paths: { a: 'a', b: 'b', } }); // 의존성 모듈 지정. require(['a'], (a) => { // 첫 번째 인자에 해당하는 모듈 로드 될 경우 printA() 함수를 호출하는 콜백함수 실행. a.printA(); // });
a.js
// define()을 통해 정의된다. define(() => { return { printA: () => console.log('a') } });
moduleA.js
const A = () => {}; export default A;
moduleB.js
export const B = () => {};
index.js
import A from 'moduleA'; import {B} from 'moduleB';