이번에는 모듈을 불러오는 require에 대해 알아봅시다. require는 함수이고, 함수는 객체이므로 require는 객체로서 속성을 몇 개 갖고 있습니다. 그중에서 require.cache와 require.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