Node.js
कैसे मॉड्यूल लोड किए जाते हैं
खोज…
ग्लोबल मोड
यदि आपने डिफ़ॉल्ट निर्देशिका का उपयोग करते हुए नोड स्थापित किया है, जबकि वैश्विक मोड में, एनपीएम /usr/local/lib/node_modules
में पैकेज स्थापित करता है। यदि आप शेल में निम्नलिखित टाइप करते हैं, तो NPM निर्देशिका के अंदर sax नाम के पैकेज के नवीनतम संस्करण को खोज, डाउनलोड और इंस्टॉल करेगा /usr/local/lib/node_modules/express
:
$ npm install -g express
सुनिश्चित करें कि आपके पास फ़ोल्डर तक पर्याप्त पहुंच अधिकार है। ये मॉड्यूल सभी नोड प्रक्रिया के लिए उपलब्ध होंगे जो उस मशीन में चल रहे होंगे
स्थानीय मोड में स्थापना। Npm वर्तमान कामकाजी फ़ोल्डरों में node_modules
नामक एक नया फ़ोल्डर बनाकर लोड और इंस्टाल करेगा, यदि आप /home/user/apps/my_app
एक नया फ़ोल्डर बनाया जाएगा जिसे node_modules
/home/user/apps/my_app/node_modules
यदि पहले से मौजूद नहीं है
लोड हो रहा है मॉड्यूल
जब हम कोड में मॉड्यूल का उल्लेख करते हैं, तो नोड पहले आवश्यक विवरण में संदर्भित फ़ोल्डर के अंदर node_module
फ़ोल्डर को node_module
यदि मॉड्यूल नाम सापेक्ष नहीं है और कोर मॉड्यूल नहीं है, तो नोड वर्तमान में node_modules
फ़ोल्डर के अंदर इसे खोजने की कोशिश करेगा। निर्देशिका। उदाहरण के लिए, यदि आप निम्न कार्य करते हैं, तो नोड फ़ाइल को देखने का प्रयास करेगा ./node_modules/myModule.js
:
var myModule = require('myModule.js');
यदि नोड फ़ाइल खोजने में विफल रहता है, तो वह मूल फ़ोल्डर के अंदर दिखेगा जिसे ../node_modules/myModule.js
कहा जाता है। यदि यह फिर से विफल हो जाता है, तो यह मूल फ़ोल्डर की कोशिश करेगा और जब तक यह रूट तक नहीं पहुंचता है या आवश्यक मॉड्यूल नहीं ढूंढता है।
यदि आप चाहें तो .js
एक्सटेंशन को भी छोड़ सकते हैं, जिस स्थिति में नोड .js
एक्सटेंशन को जोड़ देगा और फ़ाइल की खोज करेगा।
एक फ़ोल्डर मॉड्यूल लोड हो रहा है
आप इस तरह एक मॉड्यूल लोड करने के लिए एक फ़ोल्डर के लिए पथ का उपयोग कर सकते हैं:
var myModule = require('./myModuleDir');
यदि आप ऐसा करते हैं, तो नोड उस फ़ोल्डर के अंदर खोज करेगा। नोड यह मान लेगा कि यह फ़ोल्डर एक पैकेज है और पैकेज परिभाषा देखने की कोशिश करेगा। उस पैकेज की परिभाषा package.json
नामक एक फाइल होनी चाहिए। उस फ़ोल्डर एक पैकेज परिभाषा फ़ाइल का नाम शामिल नहीं है तो package.json
, पैकेज प्रवेश बिंदु का डिफ़ॉल्ट मान मान लेंगे index.js
, और नोड इस मामले में, दिखाई देगा, पथ के अंतर्गत किसी फ़ाइल के लिए ./myModuleDir/index.js
।
यदि किसी भी फ़ोल्डर में मॉड्यूल नहीं मिला है तो अंतिम उपाय वैश्विक मॉड्यूल स्थापना फ़ोल्डर है।