我想检查我的模块是否被包含或直接运行。我怎么能在node.js中做到这一点?
答案 0 :(得分:337)
The docs描述了另一种方法,这可能是首选方法:
直接从Node运行文件时,require.main设置为其模块。
要利用此功能,请检查此模块是否为主模块,如果是,请调用主代码:
var fnName = function(){
// main code
}
if (require.main === module) {
fnName();
}
编辑:如果您在浏览器中使用此代码,则会出现“参考错误”,因为未定义“require”。为防止这种情况,请使用:
if (typeof require != 'undefined' && require.main==module) {
fnName();
}
答案 1 :(得分:59)
if (!module.parent) {
// this is the main module
} else {
// we were require()d from somewhere else
}
编辑:如果您在浏览器中使用此代码,则会出现“参考错误”,因为未定义“模块”。为防止这种情况,请使用:
if (typeof module != 'undefined' && !module.parent) {
// this is the main module
} else {
// we were require()d from somewhere else or from a browser
}