我设置了2个自定义npm模块,假设范围名称是“company”。我的模块a和b具有以下结构:
f1(x){moduleB.f2(x);}
f2(x){...}
module.exports = {f1, f2};
// cyclic dependency require
var moduleB = require('@company/b');
f1(x){...}
f2(x){moduleA.f2(x);}
module.exports = {f1, f2};
// cyclic dependency require
var moduleA = require('@company/a');
当我现在需要module @ company / a和fire f1(x)时,我收到以下错误:
TypeError:moduleB.f2不是函数
我在导出后正确地需要循环相关模块,我仍然得到一个模块B的空对象...
有谁知道问题是什么?
答案 0 :(得分:0)
我通过查看子模块的依赖关系解决了这个问题,例如在 a - >之前的评论中 b - > c - > a (模块导出前需要最后一次)。所以我在module.exports之后移动了所有公司范围的模块。这确实提出了另一个问题。在module.exports之后移动所有模块初始化时是否有任何缺点或需要考虑的事项?