더북(TheBook)

이번에는 모듈을 불러오는 require에 대해 알아봅시다. require는 함수이고, 함수는 객체이므로 require는 객체로서 속성을 몇 개 갖고 있습니다. 그중에서 require.cacherequire.main을 알아보겠습니다.

var.js가 있는 곳에 require.js를 만듭니다.

require.js

console.log('require가 가장 위에 오지 않아도 됩니다.');

module.exports = '저를 찾아보세요.';

require('./var');

console.log('require.cache입니다.');
console.log(require.cache);
console.log('require.main입니다.');
console.log(require.main === module);
console.log(require.main.filename);

콘솔

$ node require
require가 가장 위에 오지 않아도 됩니다.
require.cache입니다.
[Object: null prototype] {
  'C:\Users\zerocho\require.js': Module {
    id: '.',
    exports: '저를 찾아보세요.',
    filename: 'C:\Users\zerocho\require.js',
    loaded: false,
    children: [ [Module] ],
    paths: [
      'C:\Users\zerocho\node_modules',
      'C:\Users\node_modules',
      'C:\node_modules'
    ]
  },
  'C:\Users\zerocho\var.js': Module {
    id: 'C:\Users\zerocho\var.js',
    exports: { odd: 'CJS홀수입니다', even: 'CJS 짝수입니다' },
    filename: 'C:\Users\zerocho\var.js',
    loaded: true,
    children: [],
    paths: [ 
      'C:\Users\zerocho\node_modules',
      'C:\Users\node_modules',
      'C:\node_modules'
    ]
  }
}
require.main입니다.
true
C:\Users\zerocho\require.js
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.