Node.js पर CLI एप्लिकेशन बनाना: Commander और Yargs फ्रेमवर्क

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

JavaScript (Node.js) के लिए CLI फ्रेमवर्क: शक्तिशाली कंसोल एप्लिकेशन बनाना

\n\n

कमांड लाइन इंटरफेस (CLI) का विकास Node.js इकोसिस्टम में एक प्रमुख कार्य है। सरल स्क्रिप्ट से लेकर DevOps के लिए जटिल टूल तक - CLI एप्लिकेशन हमें हर जगह घेरे हुए हैं। हालांकि, आर्गुमेंट पार्सर लिखना, सबकमांड को संभालना और मैन्युअल रूप से हेल्प आउटपुट देना एक थकाऊ और त्रुटि-प्रवण कार्य है। यहीं पर JavaScript (Node.js) के लिए CLI फ्रेमवर्क मददगार साबित होते हैं, जो सारी नियमित प्रक्रिया अपने हाथ में ले लेते हैं।

\n\n

इस लेख में, हम दो सबसे लोकप्रिय फ्रेमवर्क: Commander.js और Yargs पर विस्तार से चर्चा करेंगे। आप सीखेंगे कि कैसे आर्गुमेंट, ऑप्शन, रंगीन आउटपुट और स्वचालित हेल्प जनरेशन के साथ पेशेवर CLI एप्लिकेशन जल्दी से बनाए जा सकते हैं।

\n\n

Commander.js — क्लासिक और सरलता

\n\n

Commander.js Node.js पर CLI बनाने के लिए सबसे प्रसिद्ध और व्यापक रूप से उपयोग किया जाने वाला फ्रेमवर्क है। इसका उपयोग Vue CLI, Angular CLI और कई अन्य प्रोजेक्ट्स में किया जाता है। इसका मुख्य लाभ इसका सहज ज्ञान युक्त API है, जो चेन कॉल पर आधारित है।

\n\n

इंस्टॉलेशन

\n
npm install commander
\n\n

बुनियादी उदाहरण

\n
const { Command } = require('commander');\nconst program = new Command();\n\nprogram\n  .name('greet')\n  .description('अभिवादन के लिए CLI')\n  .version('1.0.0');\n\nprogram\n  .command('hello')\n  .description('उपयोगकर्ता का अभिवादन करें')\n  .argument('<name>', 'उपयोगकर्ता का नाम')\n  .option('-l, --language <lang>', 'अभिवादन की भाषा', 'रूसी')\n  .action((name, options) => {\n    if (options.language === 'अंग्रेज़ी') {\n      console.log(`Hello, ${name}!`);\n    } else {\n      console.log(`Привет, ${name}!`);\n    }\n  });\n\nprogram.parse(process.argv);
\n\n

इस उदाहरण में, हमने greet hello कमांड बनाया है, जो एक अनिवार्य आर्गुमेंट name और एक वैकल्पिक ऑप्शन --language स्वीकार करता है। Commander स्वचालित रूप से --help कमांड के लिए हेल्प जनरेट करेगा।

\n\n

सबकमांड के लिए समर्थन

\n

Commander कमांड के पदानुक्रम को अच्छी तरह से संभालता है। आप नेस्टेड कमांड बना सकते हैं, जो जटिल टूल के लिए विशेष रूप से उपयोगी है:

\n
const project = program.command('project');\n\nproject\n  .command('init')\n  .description('प्रोजेक्ट आरंभ करें')\n  .action(() => {\n    console.log('प्रोजेक्ट आरंभ किया गया');\n  });\n\nproject\n  .command('build')\n  .description('प्रोजेक्ट बनाएं')\n  .option('-p, --production', 'प्रोडक्शन बिल्ड')\n  .action((options) => {\n    console.log(options.production ? 'प्रोडक्शन बिल्ड' : 'सामान्य बिल्ड');\n  });
\n\n

Yargs — लचीलापन और शक्ति

\n\n

Yargs एक और शक्तिशाली फ्रेमवर्क है जो आर्गुमेंट पार्सिंग पर ध्यान केंद्रित करता है और बहुत लचीली क्षमताएं प्रदान करता है। यह विशेष रूप से तब अच्छा होता है जब आपको पार्सर के व्यवहार पर सटीक नियंत्रण की आवश्यकता होती है, या जब आप जटिल बहु-स्तरीय इंटरफेस बना रहे होते हैं।

\n\n

इंस्टॉलेशन

\n
npm install yargs
\n\n

Yargs के साथ उदाहरण

\n
const yargs = require('yargs/yargs');\nconst { hideBin } = require('yargs/helpers');\n\nconst argv = yargs(hideBin(process.argv))\n  .command('serve [port]', 'सर्वर चलाएं', (yargs) => {\n    yargs\n      .positional('port', {\n        describe: 'सर्वर के लिए पोर्ट',\n        default: 3000\n      });\n  }, (argv) => {\n    console.log(`सर्वर पोर्ट ${argv.port} पर चल रहा है`);\n  })\n  .option('verbose', {\n    alias: 'v',\n    type: 'boolean',\n    description: 'विस्तृत आउटपुट'\n  })\n  .example('$0 serve 8080', 'पोर्ट 8080 पर सर्वर चलाएं')\n  .demandCommand(1, 'कमांड निर्दिष्ट करना आवश्यक है')\n  .help()\n  .argv;
\n\n

Yargs कमांड को परिभाषित करने के लिए अधिक नियतात्मक दृष्टिकोण प्रदान करता है। आप सटीक रूप से निर्दिष्ट कर सकते हैं कि कौन से आर्गुमेंट पोजीशनल हैं, उनके लिए डिफ़ॉल्ट मान सेट कर सकते हैं, प्रकारों की जांच कर सकते हैं और भी बहुत कुछ कर सकते हैं।

\n\n

मान्यकरण और प्रकार

\n

Yargs की एक मजबूत

अनुशंसाएँ