当前加载的node.js模块列表?

时间:2012-03-20 17:29:12

标签: node.js

node.js中是否有一个函数可以为我提供所有当前加载的模块 - 甚至更好的是它们的文件名?

我想在加载的模块更新后立即重启我的进程,因此需要知道需要监视哪些文件的更改...

2 个答案:

答案 0 :(得分:13)

检查module模块源。你的答案是:

Object.keys(require('module')._cache);

答案 1 :(得分:8)

补充Anatoliy's helpful answer

自Node.js v0.3.0起,require.cache包含已加载的非核心模块:

 Object.keys(require.cache);  # lists full filenames of loaded non-core modules

require.cache不同,module._cache的优势在于记录

注意:

  • util等核心模块未显示在require.cache中。

    • 要测试模块是否为核心模块,请使用require.resolve(<name>):如果它返回<name>,即仅返回模块 name 本身,则模块为核心模块;非核心模块将返回其完整文件名。
  • require.cache包含所有当前加载的非核心模块的哈希值module个实例,以其完整文件名为基础。