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