2012-03-20 40 views
5

node.js中是否有一個函數爲我提供所有當前加載的模塊 - 甚至更好,它們的文件名?當前加載的node.js模塊列表?

我想作爲一個加載模塊被更新,儘快重新啓動我的過程,因此需要知道哪些文件需要更改被監視...

+0

爲什麼不使用[Nodemon](https://github.com/remy/nodemon)? – 2012-03-20 18:29:59

+1

因爲它監視所有類型的文件,而不僅僅是有效加載的模塊。無論如何感謝提示。 – 2012-03-21 13:42:09

回答

9

檢查module模塊源。你的答案是:

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

這段代碼會做什麼? – 2012-12-20 22:55:54

+0

此代碼打印當前加載的節點模塊(文件名)的列表。 – Anatoliy 2012-12-22 09:18:02

4

爲了補充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>,即,僅僅是模塊本身,該模塊是芯;非核心模塊將返回它們的完整文件名。
  • require.cache包含了所有當前加載非核心模塊,module情況下,通過充分鍵入文件名的哈希值。