2012-03-20 19 views
5

¿Hay una función en node.js que me dé todos los módulos actualmente cargados, o mejor aún, sus nombres de archivo?Lista de módulos node.js cargados actualmente?

deseo reiniciar mi proceso tan pronto como un módulo cargado se actualiza por lo que necesita saber lo que deben ser supervisados ​​por cambios archivos ...

+0

¿Por qué no utilizar [Nodemon] (https://github.com/remy/nodemon)? –

+1

Porque supervisa todo tipo de archivos, no solo los módulos cargados efectivamente. Gracias por la pista de todos modos. –

Respuesta

9

Comprobar la fuente module módulo. Su respuesta es:

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

¿Qué hará este código? –

+0

Este código imprime la lista de módulos de nodo cargados actualmente (nombres de archivo). – Anatoliy

4

Para complementar Anatoliy's helpful answer:

Desde Node.js v0.3.0, require.cache contiene los módulos no básicos cargados:

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

La ventaja de require.cache es que es documentado, a diferencia de module._cache.

Nota:

  • módulos del núcleo como util no aparecen en require.cache.

    • Para probar si un módulo es un módulo de núcleo, utilice require.resolve(<name>): si devuelve <name>, es decir, simplemente el módulo nombre sí mismo, el módulo está núcleo; los módulos no centrales devolverán su nombre de archivo completo.
  • require.cache contiene un hash de todos los módulos no básicos cargados actualmente como module casos, cerrado por sus plenos nombres de archivo.

Cuestiones relacionadas