Node.js में CLI एप्लिकेशन कैसे बनाएं

Node.js में CLI एप्लिकेशन कैसे बनाएं
आप जैसे पाठक MUO को समर्थन देने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन कमा सकते हैं। और पढ़ें।

सीएलआई (कमांड लाइन इंटरफ़ेस) एप्लिकेशन सरल टेक्स्ट-आधारित ऐप हैं जो विशिष्ट कार्यों को पूरा करने के लिए टर्मिनल में चलते हैं। सीएलआई एप्लिकेशन लगभग हर डेवलपर और आईटी पेशेवर के वर्कफ़्लो में महत्वपूर्ण भूमिका निभाते हैं।





वे ज्यादातर उपयोगिता उपकरण हैं जो ऑपरेटिंग सिस्टम या एप्लिकेशन के साथ इंटरैक्ट करते हैं जो उपयोगकर्ता के इनपुट और निर्देशों के अनुसार कार्य करने के लिए या तो स्थानीय रूप से स्थापित होते हैं या इंटरनेट पर उपलब्ध होते हैं।





सीएलआई अनुप्रयोगों को समझना

एक कमांड-लाइन इंटरफ़ेस आपको टेक्स्ट की पंक्तियाँ टाइप करके प्रोग्राम के साथ इंटरैक्ट करने की सुविधा देता है। कई सीएलआई प्रोग्राम आपके प्रारंभ करने के लिए उपयोग किए जाने वाले कमांड के आधार पर अलग-अलग तरीके से चलते हैं।





उदाहरण के लिए, ls प्रोग्राम फ़ाइल जानकारी प्रदर्शित करता है और निर्देशिकाओं की सामग्री। आप इसे इस प्रकार चला सकते हैं:

 ls -l /home

इस आदेश में शामिल हैं:



  • कार्यक्रम का नाम: रास .
  • एक विकल्प (या ध्वज)। इस मामले में, -एल एक विकल्प है जो 'लंबे' का संक्षिप्त रूप है और अधिक विस्तृत जानकारी प्रदान करता है।
  • एक विवाद, /घर . यहां, तर्क जानकारी दिखाने के लिए निर्देशिका के लिए एक पथ निर्दिष्ट करता है।

जबकि प्रत्येक प्रोग्राम अपने स्वयं के कमांड-लाइन इंटरफ़ेस को परिभाषित कर सकता है, कुछ तत्व सामान्य और व्यापक उपयोग में हैं। आपको इन मानकों का पालन करना चाहिए ताकि जो कोई कमांड-लाइन इंटरफ़ेस से परिचित हो वह आपके प्रोग्राम का आसानी से उपयोग कर सके।

कमांडर.जेएस क्या है?

कमांडर.जेएस है एक पैकेज जो आपको Node.js में CLI ऐप्स बनाने की सुविधा देता है . इसमें सुविधाओं की एक समृद्ध लाइब्रेरी है जो आपको भारी काम करते हुए एक मानक सीएलआई एप्लिकेशन बनाने की सुविधा देती है। आपको केवल अपने सीएलआई ऐप के लिए कमांड, विकल्प और कार्यक्षमता को परिभाषित करना होगा।





इसे स्टाइलिंग के लिए चॉक.जेएस जैसे अन्य पैकेजों के साथ जोड़कर, आप जल्दी से नोड.जेएस में एक पूरी तरह कार्यात्मक सीएलआई ऐप बना सकते हैं।

कमांडर.जेएस का उपयोग करके नोड.जेएस में सीएलआई एप्लिकेशन बनाना

एक उदाहरण सीएलआई ऐप पर विचार करें, शहरी-सीएलआई, जो शब्दों के अर्थ और सोशल मीडिया संक्षिप्ताक्षरों को देखता है शहरी शब्दकोश . आप सीखेंगे कि सीएलआई कैसे बनाएं और इसे कैसे प्रकाशित करें NPM पैकेज रजिस्ट्री ताकि अन्य लोग इसे इंस्टॉल कर सकें।





कैसे एक क्रॉस केबल बनाने के लिए

एक नया फ़ोल्डर बनाएं और निम्नलिखित कमांड के साथ एक नया Node.js प्रोजेक्ट आरंभ करें:

 mkdir urbanary-cli 
cd urbanary-cli
npm init -y

यह सीएलआई उपयोग करेगा HTTP अनुरोध भेजने के लिए Axios अर्बन डिक्शनरी एपीआई के लिए। आप उपयोग कर सकते हैं रैपिड एपीआई अंतिम बिंदुओं की जांच करने और क्रेडेंशियल देखने के लिए।

  अर्बन डिक्शनरी एपीआई का स्क्रीनशॉट's page on Rapid API show user API credentials

उपकमांड और सहायता के साथ एक सरल सीएलआई

अपने सीएलआई का निर्माण शुरू करने के लिए, निम्नलिखित कमांड के साथ कमांडर और एक्सियोस स्थापित करें:

 npm install commander axios 

एक नया फ़ोल्डर बनाएं, बिन , आपकी प्रोजेक्ट निर्देशिका में और एक नई खाली फ़ाइल, सूचकांक.जे.एस :

 mkdir bin 
cd bin
touch index.js

बिन ('बाइनरी' के लिए संक्षिप्त) फ़ोल्डर महत्वपूर्ण है क्योंकि इसमें प्रवेश बिंदु फ़ाइल होती है जिसे नोड आपके सीएलआई चलाने पर कॉल करता है। सूचकांक.जे.एस फ़ाइल यह प्रवेश बिंदु फ़ाइल है. अब, Index.js फ़ाइल संपादित करें और कमांडर.js API के साथ अपना CLI बनाना शुरू करें।

सबसे पहले, आयात करें कार्यक्रम कमांडर से वस्तु:

 const { program } = require('commander'); 

आप इसका उपयोग करेंगे कार्यक्रम उप-आदेशों, विकल्पों और तर्कों सहित आपके प्रोग्राम के इंटरफ़ेस को परिभाषित करने के लिए ऑब्जेक्ट। ऑब्जेक्ट में इनमें से प्रत्येक के लिए संबंधित विधियाँ हैं; उदाहरण के लिए, किसी उप-आदेश को परिभाषित करने के लिए, इसका उपयोग करें आज्ञा तरीका।

ए को परिभाषित करें खोजो शहरी शब्दकोश से शब्दों को देखने और नीचे दिए गए कोड का उपयोग करके इसके लिए एक विवरण जोड़ने के लिए सीएलआई के लिए उपकमांड:

 // index.js 
program
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')

यह एक रजिस्टर करता है खोजो कमांड, जो इसके बाद एक शब्द और इसके लिए एक विवरण की अपेक्षा करता है। कोण कोष्ठक का उपयोग यह दर्शाता है कि शब्द एक आवश्यक तर्क है; इसके बजाय वर्गाकार कोष्ठक का उपयोग करें ( [] ) इसे वैकल्पिक बनाने के लिए।

आपको एक विवरण जोड़ना चाहिए क्योंकि कमांडर.जेएस इसका उपयोग सहायता पाठ उत्पन्न करने के लिए करता है। जब आप एप्लिकेशन को इसके साथ चलाते हैं मदद कमांड, आपको एक मानक उपयोग मार्गदर्शिका मिलेगी।

इसका परीक्षण करने के लिए, निम्नलिखित जोड़ें:

 program.parse()

फिर प्रोग्राम चलाएं और इसे पास करें मदद नीचे आउटपुट प्राप्त करने के लिए कमांड:

  हेल्प कमांड चलाने का आउटपुट दिखाने वाला स्क्रीनशॉट

इस प्रकार कोई भी मानक सीएलआई एप्लिकेशन उपयोगकर्ताओं को अपनी सहायता प्रदर्शित करेगा और, कमांडर के साथ, आपको इसे स्वयं बनाने के बारे में चिंता करने की ज़रूरत नहीं है। -एच और --मदद किसी कमांड के उपयोग गाइड की जाँच के लिए विकल्प उपयोगी होते हैं।

विकल्पों को परिभाषित करना और अंतिम कार्यक्रम तैयार करना

आप श्रृंखलाबद्ध करके एक विकल्प भी परिभाषित करते हैं विकल्प कमांड परिभाषा के लिए विधि.

यहां शब्दों की परिभाषाओं में उदाहरण शामिल करने के विकल्प को परिभाषित करने का तरीका बताया गया है:

 program.option('-e, --example', "Display examples") 

और यहां बताया गया है कि वापस आने वाली परिभाषाओं की संख्या निर्दिष्ट करते हुए किसी विकल्प को कैसे परिभाषित किया जाए:

 program.option( 
    '-c, --count [amount]',
    'amount of definitions to display (max is 10)'
)

विकल्प विधि दो स्ट्रिंग पैरामीटर स्वीकार करती है, एक विकल्प के नाम के लिए (छोटे और लंबे दोनों रूप), और दूसरा इसके विवरण के लिए। अतिरिक्त [मात्रा] में तर्क गिनती करना विकल्प प्रदर्शित की जाने वाली परिभाषाओं की संख्या का मान है।

अब, जोड़ने की आखिरी विधि है कार्रवाई तरीका। आप इसे क्रियान्वित करेंगे खोजो इस पद्धति के अंतर्गत कमांड की कार्यक्षमता। इसे श्रृंखला में जोड़ें ताकि आपका कोड अब इस तरह दिखे:

विंडोज एक्सपी प्रोफेशनल पासवर्ड को बायपास कैसे करें
 program 
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')
    .option('-e, --example', "Display examples")
    .option(
        '-c, --count [amount]',
        'amount of definitions to display (max is 10)'
    )
    .action(async (word, options) => {});

इस सेटअप के साथ, यहां किस कमांड की तीन परिभाषाएँ प्राप्त की जा सकती हैं ज़ोर-ज़ोर से हंसना उदाहरणों के साथ ऐसा दिखेगा:

 urbanary-cli find lol -e -c 3 

​या, प्रत्येक विकल्प के लंबे रूप का उपयोग करके:

 urbanary-cli find lol --example --count 3