यह वास्तव में npm प्रोग्रामेटिक रूप से उपयोग करना संभव है , और इसे प्रलेखन के पुराने संशोधनों में उल्लिखित किया गया था। तब से इसे आधिकारिक दस्तावेज से हटा दिया गया है, लेकिन फिर भी निम्नलिखित विवरण के साथ स्रोत नियंत्रण पर मौजूद है:
यद्यपि npm को प्रोग्रामेटिक रूप से उपयोग किया जा सकता है, इसका API केवल CLI द्वारा उपयोग के लिए है, और किसी भी अन्य उद्देश्य के लिए इसकी फिटनेस के बारे में कोई गारंटी नहीं दी गई है। यदि आप किसी कार्य को मज़बूती से करने के लिए npm का उपयोग करना चाहते हैं, तो सबसे सुरक्षित बात यह है कि उपयुक्त तर्क के साथ वांछित npm कमांड को लागू करना है।
एनपीएम का शब्दार्थ संस्करण अंतर्निहित एपीआई के बजाय सीएलआई को ही संदर्भित करता है। आंतरिक API को स्थिर रहने की गारंटी नहीं है यहां तक कि जब npm का संस्करण इंगित करता है कि कोई ब्रेकिंग परिवर्तन सेमेस्टर के अनुसार नहीं किए गए हैं ।
मूल दस्तावेज में, निम्नलिखित कोड नमूना है जो प्रदान किया गया था:
var npm = require('npm')
npm.load(myConfigObject, function (er) {
if (er) return handlError(er)
npm.commands.install(['some', 'args'], function (er, data) {
if (er) return commandFailed(er)
// command succeeded, and data might have some info
})
npm.registry.log.on('log', function (message) { ... })
})
चूंकि npmnode_modules
फ़ोल्डर में मौजूद है , आप require('npm')
इसे किसी अन्य मॉड्यूल की तरह लोड करने के लिए उपयोग कर सकते हैं । मॉड्यूल स्थापित करने के लिए, आप उपयोग करना चाहेंगे npm.commands.install()
।
यदि आपको स्रोत में देखना है तो यह GitHub पर भी है । यहां कोड का एक पूर्ण कार्य उदाहरण दिया गया है, जो npm install
बिना किसी कमांड-लाइन तर्क के चलने के बराबर है:
var npm = require('npm');
npm.load(function(err) {
// handle errors
// install module ffi
npm.commands.install(['ffi'], function(er, data) {
// log errors or data
});
npm.on('log', function(message) {
// log installation progress
console.log(message);
});
});
ध्यान दें कि इंस्टॉल फ़ंक्शन के लिए पहला तर्क एक सरणी है। सरणी का प्रत्येक तत्व एक मॉड्यूल है जिसे npm स्थापित करने का प्रयास करेगा।
npm-cli.js
स्रोत नियंत्रण पर फ़ाइल में अधिक उन्नत उपयोग पाया जा सकता है ।
npm install npm --save
पहले करते हैं । उदाहरण महान काम करता है :)