npm (Node Package Manager) Node.js प्लेटफ़ॉर्म के लिए मानक पैकेज मैनेजर है, जो Node.js इंस्टॉलेशन में शामिल है। npm JavaScript और TypeScript प्रोजेक्ट्स की डिपेंडेंसी प्रबंधित करता है: लाइब्रेरी को node_modules में इंस्टॉल करता है, पैकेज वर्शन अपडेट करता है, वर्शन कॉन्फ़्लिक्ट हल करता है। package.json मेटाडेटा और डिपेंडेंसी सूची वाली केंद्रीय कॉन्फ़िगरेशन फ़ाइल है। npm Registry सबसे बड़ा पैकेज रजिस्ट्री है। और जानें npm Registry पर।
मुख्य बिंदु
npm को 2010 में Isaac Schlueter द्वारा Node.js डिपेंडेंसी प्रबंधन के समाधान के रूप में बनाया गया था। 2014 से npm का प्रबंधन npm, Inc. द्वारा किया जाता है, जिसे 2020 में Microsoft/GitHub द्वारा अधिग्रहित किया गया। टूल दो भागों से मिलकर बना है: CLI (कमांड लाइन) पैकेज इंस्टॉल और प्रबंधित करने के लिए, और Registry — registry.npmjs.org पर सभी प्रकाशित मॉड्यूल का केंद्रीय भंडार।
npm Registry सबसे बड़ा पैकेज रजिस्ट्री है: 2 मिलियन से अधिक पैकेज और मासिक 10 बिलियन से अधिक डाउनलोड। प्रत्येक पैकेज में SemVer वर्शन, विवरण, डिपेंडेंसी, लाइसेंस और लेखकत्व होता है। अपना खुद का पैकेज प्रकाशित करना npm publish के माध्यम से किया जाता है। npm संगठनों के लिए स्कोप्ड पैकेज (@scope/package), निजी रजिस्ट्री और अंतर्निर्मित सुरक्षा ऑडिट का समर्थन करता है।
Node.js संस्करण 18+ में बेहतर प्रदर्शन के साथ npm 9+, मोनोरेपो के लिए वर्कस्पेस और पुनर्निर्मित पीयर डिपेंडेंसी तंत्र शामिल है। npm पारिस्थितिकी तंत्र सर्वर-साइड JavaScript, फ्रंटएंड (React, Vue, Angular), मोबाइल डेवलपमेंट (React Native), बिल्ड टूल (Webpack, Vite) और CLI उपयोगिताओं को कवर करता है। npm JavaScript लाइब्रेरी के वितरण का प्राथमिक चैनल है।
npm install — मुख्य कमांड जो सभी डिपेंडेंसी को node_modules में इंस्टॉल करने के लिए package.json और package-lock.json पढ़ता है। पहली बार चलाने पर, npm डिपेंडेंसी ग्राफ की गणना करता है, वर्शन कॉन्फ़्लिक्ट हल करता है और package-lock.json जनरेट करता है। npm install <package> कमांड एक विशिष्ट पैकेज इंस्टॉल करता है; --save-dev फ़्लैग इसे devDependencies में जोड़ता है, --global वैश्विक रूप से इंस्टॉल करता है।
npx — npm संस्करण 5.2 से शामिल एक पैकेज रनर है। npx वैश्विक इंस्टॉलेशन के बिना CLI उपयोगिताओं को चलाने की अनुमति देता है: npx react-native init या npx create-react-app my-app। npx पैकेज को अस्थायी कैश में डाउनलोड करता है, चलाता है और पूरा होने पर साफ करता है। npx विशिष्ट टूल संस्करणों को चलाने के लिए भी उपयोगी है।
npm audit npm डेटाबेस से ज्ञात कमजोरियों के लिए डिपेंडेंसी ट्री को स्कैन करता है। कमांड गंभीरता स्तरों (क्रिटिकल, हाई, मॉडरेट) के साथ एक रिपोर्ट आउटपुट करता है और कमजोर पैकेजों को स्वचालित रूप से अपडेट करने के लिए npm audit fix की सिफारिश करता है। npm cache डाउनलोड किए गए पैकेजों को स्थानीय रूप से संग्रहीत करता है। npm cache clean --force इंस्टॉलेशन समस्याओं पर कैश साफ करता है। npm outdated पुराने पैकेज दिखाता है।
# npm मूल कमांड
$ npm install
$ npm install react-native-webview --save
$ npm install typescript --save-dev
# वैश्विक स्थापना के बिना चलाना
$ npx react-native init MyApp
# सुरक्षा ऑडिट
$ npm audit --fix
package.json प्रोजेक्ट रूट में एक JSON फ़ाइल है जो इसके मेटाडेटा, डिपेंडेंसी और कॉन्फ़िगरेशन का वर्णन करती है। अनिवार्य फ़ील्ड: name (अद्वितीय पैकेज नाम) और version (SemVer संस्करण, जैसे 1.0.0)। फ़ाइल त्वरित आरंभीकरण के लिए npm init -y से या मैन्युअल रूप से बनाई जाती है।
Semantic Versioning (SemVer) MAJOR.MINOR.PATCH प्रारूप में एक संस्करण मानक है। मेजर संस्करण असंगत API परिवर्तनों पर बदलता है, माइनर — कार्यक्षमता जोड़ने पर (पिछड़ा संगत), पैच — बग फिक्स पर। संस्करण से पहले ^ प्रतीक माइनर और पैच अपडेट की अनुमति देता है, ~ केवल पैच अपडेट की अनुमति देता है।
{
"name": "my-app",
"version": "1.0.0",
"private": true,
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios"
},
"dependencies": {
"react": "^18.3.0",
"react-native": "^0.76.0"
},
"devDependencies": {
"typescript": "^5.5.0",
"@types/react": "^18.3.0"
}
}
| फ़ील्ड | उद्देश्य | उदाहरण मान |
|---|---|---|
| scripts | npm run के लिए कमांड चलाएं | "start": "node index.js" |
| dependencies | एप्लिकेशन की प्रोडक्शन डिपेंडेंसी | "react": "^18.3.0" |
| devDependencies | डेवलपमेंट और टेस्टिंग टूल | "jest": "^29.7.0" |
| peerDependencies | लाइब्रेरी के लिए होस्ट डिपेंडेंसी | "react": ">=17.0.0" |
| engines | Node.js संस्करण आवश्यकताएं | {"node": ">=18.0.0"} |
React Native प्रोजेक्ट डिपेंडेंसी प्रबंधन के लिए सक्रिय रूप से npm का उपयोग करते हैं। मानक सेट में react, react-native, नेविगेशन लाइब्रेरी (React Navigation), HTTP लाइब्रेरी (axios), स्थिति प्रबंधन (Redux, Zustand) और UI घटक शामिल हैं। npm रजिस्ट्री से हजारों संगत पैकेज इंस्टॉल करने की अनुमति देता है।
npx pod-install — iOS के लिए React Native में नेटिव मॉड्यूल इंस्टॉल करने के बाद एक अनिवार्य कमांड। npm स्वचालित रूप से package-lock.json के आधार पर Podfile.lock जनरेट करता है। Expo प्रोजेक्ट्स में npm install के बजाय expo install का उपयोग किया जाता है, क्योंकि यह वर्तमान Expo SDK संस्करण के साथ संगत संस्करण चुनता है।
संस्करण विरोध React Native में एक सामान्य समस्या है: react-native-reanimated, react-native-gesture-handler और react-native-safe-area-context को संरेखित संस्करणों की आवश्यकता होती है। समाधान सभी पैकेजों को नवीनतम संगत संस्करणों में अपडेट करना या --legacy-peer-deps का उपयोग करना है। CocoaPods और Gradle के माध्यम से संकलित नेटिव मॉड्यूल के लिए package-lock.json महत्वपूर्ण है।
npm Node.js के साथ शामिल मानक पैकेज मैनेजर है। मुख्य विकल्प: yarn (2016 में Facebook द्वारा बनाया गया) और pnpm (तेज़, हार्ड लिंक के साथ)। npm 5 के बाद से, npm और yarn के बीच गति और कार्यक्षमता में अंतर न्यूनतम है। npm 7+ ने वर्कस्पेस जोड़े, जो इसे मोनोरेपो के लिए प्रतिस्पर्धी बनाता है।
| विशेषता | npm | yarn | pnpm |
|---|---|---|---|
| निर्माण वर्ष | 2010 | 2016 | 2017 |
| लॉक फ़ाइल | package-lock.json | yarn.lock | pnpm-lock.yaml |
| इंस्टॉलेशन | अनुक्रमिक (npm 5+) | समानांतर | समानांतर |
| डिस्क स्थान | मानक | मानक | न्यूनतम (लिंक) |
| Workspaces | हाँ (npm 7+) | हाँ | हाँ |
| Plug'n'Play | नहीं | हाँ | नहीं |
State of JS 2025 के अनुसार: 62% डेवलपर npm का उपयोग करते हैं, 35% yarn (मुख्य रूप से पुराने प्रोजेक्ट और PnP प्रशंसक), और 3% pnpm का उपयोग करते हैं। React Native प्रोजेक्ट्स के लिए, दोनों टूल समान रूप से व्यवहार्य हैं, लेकिन npm Expo SDK 50+ और नई React Native आरंभीकरण वाले प्रोजेक्ट्स में अधिक सामान्य है।
yarn अत्यधिक बड़े मोनोरेपो (100+ पैकेज) में अपने अधिक परिपक्व वर्कस्पेस कार्यान्वयन और Plug'n'Play के कारण लाभ बनाए रखता है। pnpm वैश्विक स्टोर पर हार्ड लिंक के माध्यम से डिस्क स्थान बचत में जीतता है। मैनेजर का चुनाव टीम की प्राथमिकताओं और बुनियादी ढांचे पर निर्भर करता है।
अक्सर पूछे जाने वाले प्रश्न
npm install package-lock.json को अपडेट करता है और सिमैंटिक रेंज के भीतर नए माइनर संस्करण स्थापित कर सकता है। npm ci (Clean Install) node_modules को हटाता है और package-lock.json से सख्ती से पैकेज स्थापित करता है बिना उसे अपडेट किए। npm ci तेज़ है, CI/CD में उपयोग किया जाता है और सभी मशीनों पर समान वातावरण सुनिश्चित करता है। यदि package-lock.json गायब है, तो npm ci त्रुटि देता है।
npm 7 से, पीयर डिपेंडेंसी विरोध बिल्ड त्रुटियाँ पैदा करते हैं। समाधान: npm update के माध्यम से सभी पैकेजों को संगत संस्करणों में अपडेट करें, npm 6 मोड के लिए --legacy-peer-deps फ़्लैग का उपयोग करें, या किसी विशिष्ट पैकेज के संस्करण को बाध्य करने के लिए package.json में overrides अनुभाग जोड़ें। सबसे अच्छा विकल्प डिपेंडेंसी को संगत संस्करणों में अपडेट करना है।
npm audit npm Security Advisory डेटाबेस से ज्ञात कमजोरियों के लिए डिपेंडेंसी ट्री को स्कैन करता है। कमांड गंभीरता स्तर (क्रिटिकल, हाई, मॉडरेट, लो) के साथ एक रिपोर्ट आउटपुट करता है और कमजोर पैकेजों को सुरक्षित संस्करणों में स्वचालित रूप से अपडेट करने के लिए npm audit fix की सिफारिश करता है। नियमित रूप से npm audit चलाना JavaScript प्रोजेक्ट्स के लिए एक बुनियादी सुरक्षा अभ्यास है।
npm workspaces एक ही रिपॉजिटरी में कई पैकेज प्रबंधित करने की अनुमति देते हैं। रूट package.json में "workspaces": ["packages/*"] फ़ील्ड जोड़ें। लाभ: साझा node_modules में सभी डिपेंडेंसी की एकल स्थापना, स्थानीय पैकेजों के बीच स्वचालित सिमलिंक, रूट से सभी पैकेजों के लिए स्क्रिप्ट चलाना, और संस्करण दोहराव को समाप्त करना।
package-lock.json सभी डिपेंडेंसी और उनके ट्रांज़िटिव पैकेजों के सटीक संस्करणों को लॉक करता है। इसके बिना, विभिन्न डेवलपर और CI सर्वर को सिमैंटिक रेंज के भीतर लाइब्रेरी के अलग-अलग संस्करण मिल सकते हैं, जिससे «मेरी मशीन पर काम करता है» त्रुटियाँ होती हैं। लॉक फ़ाइल को कमिट करना पुनरुत्पादक बिल्ड और सभी वातावरणों में समान व्यवहार सुनिश्चित करता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।