TypeScript के लिए CLI फ्रेमवर्क: पूर्ण समीक्षा और कोड उदाहरण

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

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

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

TypeScript के लिए CLI फ्रेमवर्क: शक्तिशाली कंसोल एप्लिकेशन बनाना

\n\n

TypeScript में आधुनिक विकास कमांड लाइन टूल (CLI) के बिना अकल्पनीय है। चाहे वह प्रोजेक्ट बिल्ड करना हो, कोड जनरेट करना हो या कार्यों को स्वचालित करना हो - एक गुणवत्तापूर्ण CLI इंटरफ़ेस डेवलपर की उत्पादकता बढ़ाता है। इस लेख में, हम TypeScript पर CLI बनाने के लिए सर्वश्रेष्ठ फ्रेमवर्क, उनकी विशेषताओं की समीक्षा करेंगे और व्यावहारिक उदाहरण प्रस्तुत करेंगे।

\n\n

CLI फ्रेमवर्क की आवश्यकता क्यों है?

\n\n

शुरू से CLI बनाना एक समय लेने वाला कार्य है। फ्रेमवर्क निम्नलिखित के लिए तैयार समाधान प्रदान करते हैं:

\n
    \n
  • कमांड लाइन तर्कों का पार्सिंग
  • \n
  • कमांड पदानुक्रम (उप-कमांड) बनाना
  • \n
  • स्वचालित सहायता निर्माण (--help)
  • \n
  • त्रुटि प्रबंधन और इनपुट सत्यापन
  • \n
  • इंटरैक्टिव संकेत (ऑटो-पूर्णता)
  • \n
  • रंगीन आउटपुट और प्रगति बार
  • \n
\n\n

TypeScript के लिए शीर्ष CLI फ्रेमवर्क

\n\n

1. Commander.js

\n\n

Node.js CLI के लिए सबसे लोकप्रिय फ्रेमवर्क। यह सरलता और लचीलेपन के लिए जाना जाता है। किसी भी आकार के प्रोजेक्ट के लिए उपयुक्त।

\n\n
import { Command } from 'commander';\n\nconst program = new Command();\n\nprogram\n  .name('my-cli')\n  .description('CLI एप्लिकेशन का उदाहरण')\n  .version('1.0.0');\n\nprogram\n  .command('greet')\n  .argument('<name>', 'उपयोगकर्ता का नाम')\n  .option('-l, --language <lang>', 'अभिवादन की भाषा', 'hi')\n  .action((name, options) => {\n    const greetings: Record<string, string> = {\n      hi: `नमस्ते, ${name}!`,\n      en: `Hello, ${name}!`,\n      es: `¡Hola, ${name}!`,\n    };\n    console.log(greetings[options.language] || greetings['hi']);\n  });\n\nprogram.parse(process.argv);
\n\n

Commander के लाभ:

\n
    \n
  • सहज API
  • \n
  • बॉक्स से बाहर TypeScript समर्थन
  • \n
  • अन्य लाइब्रेरीज़ के साथ आसान एकीकरण
  • \n
  • बड़ा समुदाय और दस्तावेज़ीकरण
  • \n
\n\n

2. Ink (CLI के लिए React)

\n\n

एक अनोखा फ्रेमवर्क जो React घटकों का उपयोग करके CLI इंटरफ़ेस बनाने की अनुमति देता है। समृद्ध UI वाले इंटरैक्टिव एप्लिकेशन के लिए आदर्श।

\n\n
import React, { useState } from 'react';\nimport { render, Text, Box, useInput } from 'ink';\n\nconst Counter = () => {\n  const [count, setCount] = useState(0);\n\n  useInput((input) => {\n    if (input === 'q') process.exit(0);\n    if (input === '+') setCount(c => c + 1);\n    if (input === '-') setCount(c => c - 1);\n  });\n\n  return (\n    <Box flexDirection="column" alignItems="center">\n      <Text color="green" bold>काउंटर: {count}</Text>\n      <Text dimColor>बदलने के लिए + या - दबाएं, बाहर निकलने के लिए q दबाएं</Text>\n    </Box>\n  );\n};\n\nrender(<Counter />);
\n\n

Ink के लाभ:

\n
    \n
  • घटक-आधारित दृष्टिकोण (React डेवलपर्स से परिचित)
  • \n
  • स्वचालित इंटरफ़ेस अपडेट
  • \n
  • एनिमेशन और प्रगति बार के लिए समर्थन
  • \n
  • लचीला आउटपुट अनुकूलन
  • \n
\n\n

3. Oclif (Heroku CLI Engine)

\n\n

Heroku CLI के निर्माताओं द्वारा फ्रेमवर्क। यह एक शक्तिशाली प्रोजेक्ट जनरेटर और अंतर्निहित प्लगइन समर्थन प्रदान करता है। एंटरप्राइज़ समाधानों के लिए उपयुक्त।

\n\n
import { Command, Flags } from '@oclif/core';\n\nexport class Greet extends Command {\n  static description = 'उपयोगकर्ता का अभिवादन';\n\n  static flags = {\n    name: Flags.string({ char: 'n', description: 'नाम', required: true }),\n    uppercase: Flags.boolean({ char: 'u', description: 'अपरकेस' }),\n  };\n\n  async run(): Promise<void> {\n    const { flags } = await this.parse(Greet);\n    let message = `नमस्ते, ${flags.name}!`;\n    if (flags.uppercase) message = message.toUpperCase();\n    this.log(message);\n  }\n}
\n\n

Oclif के लाभ:

\n
    \n
  • स्वचालित CLI निर्माण (npx oclif generate के माध्यम से)
  • \n
  • अंतर्निहित परीक्षण प्रणाली
  • \n
  • हुक और प्लगइन्स के लिए समर्थन

अनुशंसाएँ