2012-03-20 13 views
5

क्या node.js में कोई फ़ंक्शन है जो मुझे वर्तमान में सभी मॉड्यूल लोड करता है - या इससे भी बेहतर, उनके फ़ाइल नाम?वर्तमान में लोड नोड.जेएस मॉड्यूल की सूची?

मैं जैसे ही एक लोड मॉड्यूल अद्यतन हो जाता है मेरी प्रक्रिया पुनः आरंभ करने और इतने पता करने के लिए जो फ़ाइलों में परिवर्तन के लिए नजर रखी जा करने की जरूरत है जरूरत है ...

+0

क्यों नोडमन] (https://github.com/remy/nodemon) का उपयोग न करें? –

+1

क्योंकि यह सभी प्रकार की फाइलों पर नज़र रखता है, न केवल प्रभावी ढंग से लोड मॉड्यूल। वैसे भी संकेत के लिए धन्यवाद। –

उत्तर

9

चेक module मॉड्यूल स्रोत चाहते हैं। आपका जवाब है:

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

यह कोड क्या करेगा? –

+0

यह कोड वर्तमान में लोड किए गए नोड मॉड्यूल (फ़ाइल नाम) की सूची प्रिंट करता है। – Anatoliy

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.cachemodule उदाहरणों के रूप में सभी वर्तमान में लोड नॉन-कोर मॉड्यूल, अपनी पूरी फ़ाइल नाम से keyed के हैश में शामिल है।

संबंधित मुद्दे