如何检测使用SH:node path-to-file
或JS:require('path-to-file')
调用了Node.JS文件?
这是等效于我在Perl中上一个问题的Node.JS:How can I run my Perl script only if it wasn't loaded with require?
if (require.main === module) {
console.log('called directly');
} else {
console.log('required as a module');
}
在此查看文档:https://nodejs.org/docs/latest/api/modules.html#modules_accessing_the_main_module
我对解释中使用的术语感到有些困惑。所以我不得不做一些快速测试。
如果使用ES6模块,请尝试以下操作:
就像在Python中一样,我总是发现自己想记住如何编写这个该死的代码片段。因此,我决定为其创建一个简单的模块。由于访问调用者的模块信息并不直接,所以花了一些时间进行开发,但是很高兴看到如何实现。
如果您使用的是ESM模块,则没有module