CLI-Frameworks für TypeScript: vollständige Übersicht und Anwendungsbeispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

CLI-Frameworks für TypeScript: Leistungsstarke Konsolenanwendungen erstellen



Moderne Entwicklung mit TypeScript ist ohne die Erstellung von Befehlszeilentools (CLI) undenkbar. Ob Projekt-Bundler, Code-Generator oder Automatisierungsdienstprogramm – jeder Entwickler hat mindestens einmal darüber nachgedacht, ein eigenes Konsolenprogramm zu schreiben. In diesem Artikel werden wir die besten CLI-Frameworks für TypeScript im Detail analysieren, ihre Besonderheiten erläutern und praktische Codebeispiele liefern.



Warum ein CLI-Framework?



Ein CLI „von Grund auf“ zu schreiben, bedeutet nicht nur die Verarbeitung von Befehlszeilenargumenten, sondern auch die Verwaltung von Unterbefehlen, Eingabevalidierung, farbige Ausgabe und interaktive Eingabeaufforderungen. Ein Framework übernimmt die Routinearbeit und ermöglicht es Ihnen, sich auf die Geschäftslogik zu konzentrieren. TypeScript fügt strenge Typisierung hinzu, was besonders bei der Entwicklung komplexer Konsolenanwendungen wertvoll ist.



Die Top 4 CLI-Frameworks für TypeScript



1. Commander.js



Das beliebteste Framework (über 30 Millionen Downloads pro Woche). Ideal für die Erstellung komplexer, mehrstufiger CLIs mit Unterbefehlen, Optionen und automatischer Hilfegenerierung.



Installation:

npm install commander


Beispiel einer Basis-Anwendung:

import { Command } from 'commander';

const program = new Command();

program .name('greet') .description('CLI zum Begrüßen') .version('1.0.0');

program .command('hello') .argument('<name>', 'Benutzername') .option('-l, --lang <lang>', 'Begrüßungssprache', 'ru') .action((name, options) => { const greetings: Record<string, string> = { ru: 'Привет', en: 'Hello', de: 'Hallo' }; const greeting = greetings[options.lang] || greetings.ru; console.log(`${greeting}, ${name}!`); });

program.parse();


Ausführung:

npx ts-node index.ts hello Ivan --lang en# Ausgabe: Hello, Ivan!


2. Inquirer.js



Bibliothek zur Erstellung interaktiver Eingabeaufforderungen im Terminal. Ermöglicht das Stellen von Fragen, die Auswahl von Optionen, die Eingabe von Passwörtern und vieles mehr. Lässt sich hervorragend mit Commander kombinieren.



Installation:

npm install inquirer @types/inquirer


Beispiel einer interaktiven Befragung:

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: 'Wie heißen Sie?', validate: (input: string) => input.length > 0 || 'Name darf nicht leer sein' }, { type: 'list', name: 'role', message: 'Ihre Rolle?', choices: ['Frontend', 'Backend', 'Fullstack', 'DevOps'] }, { type: 'number', name: 'experience', message: 'Jahre Erfahrung?', default: 1 } ]);

console.log(`✅ ${answers.name}, Sie sind ${answers.role} mit ${answers.experience} Jahren Erfahrung.`);}

main();


3. Clack



Modernes Framework von den Erstellern von Astro. Zeichnet sich durch eine minimalistische API, schöne Animationen und integrierte TypeScript-Unterstützung aus. Ideal für schnelles Prototyping.



Installation:

npm install @clack/prompts


Beispiel mit Farbauswahl:

import * as clack from '@clack/prompts';

async function main() { clack.intro('Farbauswahl');

const color = await clack.select({ message: 'Wählen Sie Ihre Lieblingsfarbe:', options: [ { value: 'red', label: 'Rot' }, { value: 'green', label: 'Grün' }, { value: 'blue', label: 'Blau' } ] });

clack.note(`Sie haben gewählt: ${color}`); clack.outro('Vielen Dank für Ihre Wahl!');}

main();


4. Yargs



Leistungsstarker Argument-Parser

Empfehlungen