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

在node.js中是否有一个函数给我所有当前加载的模块 – 甚至更好,他们的文件名?

一旦加载的模块得到更新,我想重新启动我的过程,所以需要知道哪些文件需要监视更改…

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

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

为了补充Anatoliy的有用答案 :

由于Node.js v0.3.0, require.cache包含加载的非核心模块:

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

require.cache的优点在于它被logging ,不像module._cache

注意:

  • 核心模块(如util不会显示在require.cache

    • 要testing某个模块是否为核心模块,请使用require.resolve(<name>) :如果返回<name> ,即仅模块名称本身,则模块为核心; 非核心模块将返回其完整的文件名。
  • require.cache包含所有当前加载的非核心模块的散列作为module实例,以其全名作为键。