2015-01-08 4 views
2

Я предполагаю, что можно различать, требуется ли файл или передать его узлу?запускать другой код, если требуется, вместо того, чтобы напрямую передавать его в узел CLI

Например:

//foo.js 
if(????){ 
    console.log("This file was required"); 
else{ 
    console.log("This file was run directly"); 
} 

Would выход «Этот файл был необходим», когда какой-либо другой файл требует, как этот

//baz.js 
var foo = require('foo.js'); 

и будет выход «Этот файл был запущен непосредственно», когда передается в узел непосредственно:

$ node foo.js 

Что именно должно быть условным?

+0

'__filename === undefined' – generalhenry

+0

@generalhenry' TypeOf __filename' возвращает 'string' для обоих тестов. –

+0

ahh, nvm, я неправильно читаю, что один для repl – generalhenry

ответ

3

Вы можете проверить: module.parent, чтобы узнать, выполняется ли оно во всем мире или требуется.

В documentation состояния

модуль, который необходим этот.

Значение, если это не было необходимо, то module.parent не существует.

if (module.parent) { 
    console.log('File is being required.'); 
} else { 
    console.log('File is being run directly.'); 
}