在加载过程中 默认文件顺序是 a.js b.js 但是在加载过程中 a.js 里面有require b.js b.js 里面有require a.js 但是a.js 里面 require b.js时候 返回空对象
循环调用了,你可以把a和b里共用的东西抽离出来,试着放到一个新的文件里
建议你看下这个。或许对你有帮助。https://nodejs.org/api/modules.html#modules_cycles
a require b 的时候返回空对象,是因为 b 还没有加载完吧。只是加载了一个假的 b 模块。 用 setTimeout 来打印 b 模块试试?
这种循环应该避免,加载a开始,里面有b的加载,但是b里面又去加载a 造成循环加载,这里返回的a应该是空的,可能依赖,而导致b的返回也是空的。