假设我有3个带依赖关系的模块,如下所示:
A.js
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
中没有出现,因为它在C
被执行之前已被B
加载。
我可以理解Z
的module.parent
是B
,因为这是它最初被加载的地方,但是Z
肯定可以同时是B
和C
的子项吗?
无论是否已经加载,我的问题是:是否有可能看到一个模块的所有子项?
var a = require('./A')
的东西).. 我正在尝试制作一个工具,通过递归查找module.children
来显示依赖项。 - Alex McMillanrequire
该文件,然后查看自己的module.children
- 唯一的项目是已加载的module
。然后通过module.children
递归,将一些信息转储到控制台。那就是目标... - Alex McMillanrewire
,但没有成功。不过,我研究了一下require
对象的内容,并找到了一个钩子。我很想知道你的想法。 - Alex McMillan