TypeScript के लिए CLI फ्रेमवर्क: शक्तिशाली कंसोल एप्लिकेशन बनाना
TypeScript में आधुनिक विकास कमांड लाइन टूल (CLI) बनाए बिना अधूरा है। चाहे वह प्रोजेक्ट बिल्डर हो, कोड जनरेटर हो या ऑटोमेशन उपयोगिता - हर डेवलपर ने कम से कम एक बार अपना खुद का कंसोल प्रोग्राम लिखने के बारे में सोचा है। इस लेख में, हम TypeScript के लिए सर्वश्रेष्ठ CLI फ्रेमवर्क, उनकी विशेषताओं और व्यावहारिक कोड उदाहरणों पर विस्तार से चर्चा करेंगे।
CLI फ्रेमवर्क की आवश्यकता क्यों है?
CLI को "स्क्रैच से" लिखने का मतलब सिर्फ कमांड लाइन तर्कों को संसाधित करना नहीं है, बल्कि उप-कमांड प्रबंधन, इनपुट सत्यापन, रंगीन आउटपुट और इंटरैक्टिव संकेत भी शामिल हैं। फ्रेमवर्क नियमित कार्यों को संभालता है, जिससे आप व्यावसायिक तर्क पर ध्यान केंद्रित कर सकते हैं। TypeScript सख्त टाइपिंग जोड़ता है, जो जटिल कंसोल एप्लिकेशन विकसित करते समय विशेष रूप से मूल्यवान है।
TypeScript के लिए शीर्ष-4 CLI फ्रेमवर्क
1. Commander.js
सबसे लोकप्रिय फ्रेमवर्क (प्रति सप्ताह 30 मिलियन से अधिक डाउनलोड)। उप-कमांड, विकल्प और स्वचालित सहायता पीढ़ी के साथ जटिल बहु-स्तरीय CLI बनाने के लिए आदर्श।
स्थापना:
npm install commanderमूल एप्लिकेशन उदाहरण:
import { Command } from 'commander';
const program = new Command();
program .name('greet') .description('अभिवादन के लिए CLI') .version('1.0.0');
program .command('hello') .argument('<name>', 'उपयोगकर्ता का नाम') .option('-l, --lang <lang>', 'अभिवादन की भाषा', 'hi') .action((name, options) => { const greetings: Record<string, string> = { hi: 'नमस्ते', en: 'Hello', de: 'Hallo' }; const greeting = greetings[options.lang] || greetings.hi; console.log(`${greeting}, ${name}!`); });
program.parse();चलाना:
npx ts-node index.ts hello राहुल --lang en# आउटपुट: Hello, राहुल!2. Inquirer.js
टर्मिनल में इंटरैक्टिव संकेत बनाने के लिए लाइब्रेरी। यह प्रश्न पूछने, विकल्प चुनने, पासवर्ड दर्ज करने और बहुत कुछ करने की अनुमति देता है। Commander के साथ अच्छी तरह से संयोजित होता है।
स्थापना:
npm install inquirer @types/inquirerइंटरैक्टिव सर्वेक्षण उदाहरण:
import inquirer from 'inquirer';
interface Answers { name: string; role: string; experience: number;}
async function main() { const answers: Answers = await inquirer.prompt([ { type: 'input', name: 'name', message: 'आपका नाम क्या है?', validate: (input: string) => input.length > 0 || 'नाम खाली नहीं हो सकता' }, { type: 'list', name: 'role', message: 'आपकी भूमिका?', choices: ['Frontend', 'Backend', 'Fullstack', 'DevOps'] }, { type: 'number', name: 'experience', message: 'अनुभव के वर्ष?', default: 1 } ]);
console.log(`✅ ${answers.name}, आप ${answers.role} हैं और आपका अनुभव ${answers.experience} वर्ष है।`);}
main();3. Clack
Astro के निर्माताओं द्वारा आधुनिक फ्रेमवर्क। न्यूनतम API, सुंदर एनिमेशन और "बॉक्स से बाहर" TypeScript समर्थन द्वारा विशेषता। तेज़ प्रोटोटाइप के लिए आदर्श।
स्थापना:
npm install @clack/promptsरंग चयन उदाहरण:
import * as clack from '@clack/prompts';
async function main() { clack.intro('रंग चयन');
const color = await clack.select({ message: 'अपना पसंदीदा रंग चुनें:', options: [ { value: 'red', label: 'लाल' }, { value: 'green', label: 'हरा' }, { value: 'blue', label: 'नीला' } ] });
clack.note(`आपने चुना: ${color}`); clack.outro('चुनने के लिए धन्यवाद!');}
main();4. Yargs
शक्तिशाली तर्क पार्सर