2
在Node.js的文件,我发现了一个句话说的Node.js,require.main ===模块
当一个文件从Node.js的直接运行,
require.main
被设置为它 模块。这意味着可以通过测试require.main === module
来确定文件是否已经直接运行。
我要问什么是main
这里,我找不到这个main
源代码的定义,任何人都可以帮助,谢谢!
在Node.js的文件,我发现了一个句话说的Node.js,require.main ===模块
当一个文件从Node.js的直接运行,
require.main
被设置为它 模块。这意味着可以通过测试require.main === module
来确定文件是否已经直接运行。
我要问什么是main
这里,我找不到这个main
源代码的定义,任何人都可以帮助,谢谢!
require
是一个函数。 .main
是该功能的一个属性,因此您可以参考require.main
。你指的是文档的那部分说,你可以写这样的代码:
if (require.main === module) {
// this module was run directly from the command line as in node xxx.js
} else {
// this module was not run directly from the command line and probably loaded by something else
}
在上面的代码中module
是传递到由node.js的加载,使所有代码模块的变量基本上如果require.main
是当前模块,那么当前模块是从命令行加载的内容。
设置该属性的代码在这里:https://github.com/nodejs/node/blob/master/lib/internal/module.js#L23。
感谢您的回答,但我无法在module.js文件的Module.prototype.require中找到.main属性。我只是对源代码在哪里定义.main属性感到好奇。 – phaneven
@phaneven - 设置该属性的代码位于:https://github.com/nodejs/node/blob/master/lib/internal/module.js#L23 – jfriend00