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。
这是文档的这部分内容。