require.main和module有什么区别?

我正在build立一个节点cli,当我不得不引用模块的文件path时,我不明白它是如何工作的。

从节点的文档,它说require.main === module 。 这些是什么意思?

从文档;

当一个文件直接从Node.js运行时,require.main被设置为它的模块。 这意味着您可以确定文件是否已经通过testing直接运行

 require.main === module 

对于文件foo.js,如果通过节点foo.js运行,则为true;如果运行require('./ foo'),则为false。

所以可以说,你有一个名为foo.js的文件,它涉及到下面的代码;

 console.log(require.main === module); 

当你从terminalinput“node foo.js”时,你会看到它返回true。 但是,假设你有第二个文件叫做foo1.js,你需要在这个文件中使用foo.js。

 var foo = require("./foo"); 

当你从terminal键入“node foo1.js”时,你会看到它返回false。

这是文档的这部分内容。