NodeJS 循环引用问题

最近新发现了一个在 NodeJS 中导致出现循环引用的可能情况。下面说明一下。
本来呢,如果直接在module.exports上设置导出属性,那么循环引用发生时,也可以获取到正确的值。因为并没有改变原来导出对象的引用。
比如这样,

module.exports.a = '123';

但是,如果导出的是一个函数,那么需要在导入之前先导出本函数,才不会发生循环引用时候获取不到正确的值。否则导入的仍旧是旧的默认module.exports对象,然而它会被覆盖,是无用的。

function A(){}
module.exports = A;

require('...')

请看这个 issue

你可能感兴趣的:(NodeJS 循环引用问题)