Nodemon JavaScript (Node.js): पूरी गाइड उदाहरणों के साथ
1. Nodemon क्या है और इसकी आवश्यकता क्यों है?
Nodemon एक Node.js डेवलपमेंट टूल है जो आपके प्रोजेक्ट फ़ाइलों में बदलाव होने पर सर्वर (या किसी भी Node.js एप्लिकेशन) को ऑटोमैटिक रीस्टार्ट करता है। यह Express, Koa, Fastify और अन्य फ्रेमवर्क के साथ काम करने वाले वेब डेवलपर्स के लिए बेहद ज़रूरी है। हर बार कोड बदलने के बाद मैन्युअली सर्वर को रोकने और चालू करने की बजाय, Nodemon फ़ाइल सिस्टम पर नज़र रखता है और फ़ाइल सेव होने पर ऑटोमैटिक रिएक्ट करता है।
Nodemon का मुख्य काम डेवलपमेंट साइकिल को तेज़ करना है। इसके बिना डेवलपर को बार-बार Ctrl+C, ऊपर तीर, Enter दबाना पड़ता है। Nodemon इस प्रक्रिया को पूरी तरह ऑटोमेट कर देता है। यह न सिर्फ प्रोसेस को रीस्टार्ट करता है, बल्कि पिछले इंस्टेंस को सही तरीके से बंद करके पोर्ट और रिसोर्स को भी फ्री करता है। साथ ही, Nodemon कुछ फ़ाइलों और फ़ोल्डरों (जैसे node_modules या .git) को इग्नोर कर सकता है, जिससे CPU और डिस्क पर लोड कम होता है।
यह समझना ज़रूरी है कि Nodemon कोई सामान्य लाइब्रेरी (जैसे Lodash या Axios) नहीं है, बल्कि यह एक CLI टूल (Command Line Interface) है। इसे कोड में मॉड्यूल की तरह इम्पोर्ट करने के लिए नहीं बनाया गया (हालांकि API के ज़रिए यह तकनीकी रूप से संभव है)। इसका मुख्य उपयोग कमांड लाइन से या package.json में स्क्रिप्ट के ज़रिए होता है। Nodemon सभी ऑपरेटिंग सिस्टम (Windows, macOS, Linux) और Node.js के किसी भी वर्जन के साथ काम करता है।
2. इंस्टॉलेशन (Installation)
Nodemon को npm (Node Package Manager) के ज़रिए इंस्टॉल किया जाता है। इसे ग्लोबली या प्रोजेक्ट में dev-डिपेंडेंसी के रूप में इंस्टॉल करने की सलाह दी जाती है।
ग्लोबल इंस्टॉलेशन (सभी प्रोजेक्ट्स के लिए):
npm install -g nodemon
लोकल इंस्टॉलेशन (किसी खास प्रोजेक्ट के लिए):
npm install --save-dev nodemon
लोकल इंस्टॉलेशन के बाद, आप npx के ज़रिए या package.json में स्क्रिप्ट जोड़कर Nodemon चला सकते हैं:
{
"scripts": {
"dev": "nodemon app.js"
}
}
फिर चलाएँ: npm run dev।
3. तुरंत शुरुआत — एक मिनिमल वर्किंग उदाहरण
एक सिंपल HTTP सर्वर के लिए app.js फ़ाइल बनाएँ:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!\n');
});
const PORT = 3000;
server.listen(PORT, () => {
console.log(`Server running at http://localhost:${PORT}/`);
});
अब Nodemon चलाएँ:
nodemon app.js
आपको यह आउटपुट दिखेगा:
[nodemon] 3.1.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node app.js`
Server running at http://localhost:3000/
अब res.end() में टेक्स्ट बदलकर 'Hello, Nodemon!\n' करें और फ़ाइल सेव करें। Nodemon ऑटोमैटिक सर्वर रीस्टार्ट करेगा, और ब्राउज़र में पेज रिफ्रेश करने पर आपको अपडेटेड रिस्पॉन्स दिखेगा।
4. मुख्य मेथड/फंक्शन/क्लास
Nodemon CLI इंटरफ़ेस और प्रोग्रामेटिक API दोनों प्रदान करता है। नीचे मुख्य मेथड और उनके उदाहरण दिए गए हैं।
4.1. nodemon([options]) — प्रोग्रामेटिक रन
सिग्नेचर: nodemon([options: Object])
काम: Node.js स्क्रिप्ट से प्रोग्रामेटिक रूप से Nodemon चलाता है। बिहेवियर को फाइन-ट्यून करने और इवेंट हैंडल करने की सुविधा देता है।
उदाहरण:
const nodemon = require('nodemon');
nodemon({
script: 'app.js',
ext: 'js json html',
ignore: ['node_modules/', 'test/'],
env: { NODE_ENV: 'development' }
});
nodemon.on('start', () => {
console.log('Nodemon started!');
}).on('quit', () => {
console.log('Nodemon stopped.');
process.exit();
});
4.2. nodemon.restart() — मैन्युअल रीस्टार्ट
सिग्नेचर: nodemon.restart()
काम: प्रोग्रामेटिक रूप से Nodemon को रीस्टार्ट करने के लिए उपयोग किया जाता है।
उदाहरण:
const nodemon = require('nodemon');
nodemon({ script: 'app.js' });
// किसी इवेंट पर मैन्युअल रीस्टार्ट
setTimeout(() => {
nodemon.restart();
}, 5000);
4.3. nodemon.reset() — रीसेट
सिग्नेचर: nodemon.reset()
काम: सभी कॉन्फ़िगरेशन को रीसेट करता है और Nodemon को फिर से शुरू करता है।
उदाहरण:
const nodemon = require('nodemon');
nodemon({ script: 'app.js' });
// कॉन्फ़िगरेशन रीसेट करें
nodemon.reset();
4.4. nodemon.config — कॉन्फ़िगरेशन ऑब्जेक्ट
सिग्नेचर: nodemon.config
काम: वर्तमान Nodemon कॉन्फ़िगरेशन को एक्सेस करने के लिए प्रॉपर्टी।
उदाहरण:
const nodemon = require('nodemon');
nodemon({ script: 'app.js' });
console.log(nodemon.config); // कॉन्फ़िगरेशन ऑब्जेक्ट दिखाएगा
5. निष्कर्ष
Nodemon Node.js डेवलपमेंट के लिए एक ज़रूरी टूल है। यह डेवलपमेंट वर्कफ़्लो को काफी तेज़ और आसान बनाता है। चाहे आप छोटे प्रोजेक्ट पर काम कर रहे हों या बड़े एंटरप्राइज़ एप्लिकेशन पर, Nodemon आपका समय बचाएगा और आपको कोडिंग पर फोकस करने देगा।
Nodemon की मुख्य विशेषताएँ:
- ऑटोमैटिक सर्वर रीस्टार्ट
- फ़ाइलों और फ़ोल्डरों को इग्नोर करने की सुविधा
- कस्टमाइज़ेबल वॉचिंग पैटर्न
- सभी प्रमुख ऑपरेटिंग सिस्टम पर काम करता है
- प्रोग्रामेटिक API के ज़रिए एडवांस्ड यूज़
अपने अगले Node.js प्रोजेक्ट में Nodemon का उपयोग ज़रूर करें और डेवलपमेंट एक्सपीरियंस को बेहतर बनाएँ!