javascript - 是否可以访问 nodejs 模块的 *loaded* 子级?

标签 javascript node.js

假设我有 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 没有出现在 Cmodule.children 中,因为它之前已经被 B 加载了C 被执行。

我可以理解 Zmodule.parentB 因为那是它加载的第一个地方,但肯定是 Z 可以是 BC 的 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/

相关文章:

javascript - 使用 odata 和 jquery 从 Dynamics Crm 中的实体检索记录

javascript - 原型(prototype) js super 方法调用或类似的东西

javascript - 多个 ID jQuery 选择器返回的结果与单个 ID 选择器返回的结果不同

node.js - Graphicsmagick 中的合成图像

node.js - 使用 socket.io 和 sails.js 发送 session 特定消息

Javascript className 属性仅更新备用列表项

javascript - 在 Cassandra 和 Node.js 中使用用户定义的类型

node.js - Sequelize 查找最新创建和更新的_at

ruby-on-rails - 在 Rails 和 Node 之间共享 session 数据?

javascript - limitTo 过滤前查询过滤的 ng-repeat 数据的长度