假设我有 3 个具有如下依赖关系的模块:
A.js
var b = require('./B');
var c = require('./C');
console.log(module.children.length); // 2
B.js
var z = require('Z');
console.log(module.children.length); // 1
C.js
var z = require('Z');
console.log(module.children.length); // 0 ?!?!
Z
没有出现在 C
的 module.children
中,因为它之前已经被 B
加载了C
被执行。
我可以理解 Z
的 module.parent
是 B
因为那是它加载的第一个地方,但肯定是 Z
可以是 B
和 C
的 child 吗?
无论如何,我的问题是:是否有可能看到一个模块的所有子 Node ,无论它们是否已加载?
最佳答案
我过去遇到过类似的问题,我手动删除了缓存,在您的情况下是模块 C。
C.js
delete require.cache[require.resolve('./Z')];
var z = require('./Z'); // 1
不过,我不确定这对您来说是否是一个可行的解决方案。
关于javascript - 是否可以访问 nodejs 模块的 *loaded* 子级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30550350/