我正在用节点构建一个cli,当我不得不引用模块的文件路径时,我并不了解它是如何工作的。
从节点的文档中,它说require.main === module
。这些具体意味着什么?
答案 0 :(得分:9)
来自doc;
直接从Node.js运行文件时,require.main设置为它 模块。这意味着您可以确定文件是否已运行 直接通过测试
require.main === module
对于文件foo.js,如果通过节点foo.js运行,则为true,但为false 如果由require('./ foo')运行。
因此,假设您有一个名为foo.js的文件,它涉及以下代码;
console.log(require.main === module);
当你从终端输入“node foo.js”时,你会看到它返回true。但是,假设您有第二个名为foo1.js的文件,您需要在此文件中使用foo.js,如下所示;
var foo = require("./foo");
当您从终端输入“node foo1.js”时,您会看到它返回false。
这就是这部分文档所说的内容。