Javascript require()返回同一模块的不同类型

Javascript require()返回同一模块的不同类型,javascript,mocha.js,Javascript,Mocha.js,我有一个模块a,类似这样: module.exports = function() {} 另一个模块B使用它。如果我查看require返回的类型,它表示对象: 但如果我将其包括在B的测试中,则返回的类型是function: 这怎么可能??返回值应该是这两个函数的函数,代码中唯一不同的是文件的路径。。。这些文件是:src/A.js,src/B.js和test/B.js 帮助?我这样运行->节点src\B.js返回函数,然后节点测试\B.js再次返回函数,我使用的是v5.5.0,您使用的是哪个节点

我有一个模块a,类似这样:

module.exports = function() {}
另一个模块B使用它。如果我查看
require
返回的类型,它表示对象:

但如果我将其包括在B的测试中,则返回的类型是function:

这怎么可能??返回值应该是这两个函数的函数,代码中唯一不同的是文件的路径。。。这些文件是:
src/A.js
src/B.js
test/B.js


帮助?

我这样运行->
节点src\B.js
返回
函数
,然后
节点测试\B.js
再次返回
函数
,我使用的是v5.5.0,您使用的是哪个节点版本?无法复制,对我来说,
a
的类型始终作为函数返回(节点5.3.0)您的项目中是否存在某种循环依赖关系,使得
require()
返回一个空对象?我使用的是5.0.0-因此我想我应该升级。伯吉,是的。。。我想就是这样。在实际代码中,我有一个循环依赖项,但在上面的测试代码中,我没有。我会尝试升级,看看是否能解决问题
var a = require('./A');
console.log(typeof a);
var a = require('../src/A');
console.log(typeof a);