Warum TypeScript die ideale Sprache für CLI-Dienstprogramme ist?
\nWenn Sie in Python schreiben und plötzlich über die Erstellung eines Konsolendienstprogramms nachdenken, ist Ihr erster Impuls wahrscheinlich, argparse oder click zu verwenden. Und das ist logisch. Aber was, wenn ich Ihnen sage, dass TypeScript jedem Python-Tool in der CLI-Welt überlegen sein kann? Ja, Sie haben richtig gehört.
TypeScript ist nicht nur "JavaScript mit Typen". Es ist eine Sprache, die die Entwicklung von CLI-Dienstprogrammen in einen vorhersagbaren und sicheren Prozess verwandelt. Kein "Warum habe ich undefined anstelle einer Zeichenkette?" oder "Ich habe eine Zahl übergeben, aber sie wurde zu einer Zeichenkette" mehr. Die strenge Typisierung eliminiert eine ganze Klasse von Fehlern bereits zur Kompilierzeit.
Der Hauptvorteil ist jedoch das Ökosystem. Node.js ermöglicht es, TypeScript-Code überall auszuführen: auf dem Server, in Docker, auf dem Raspberry Pi. Und npm macht die Veröffentlichung des Dienstprogramms zu einer Sache von fünf Minuten. Heute werden wir den gesamten Weg gehen: von einem leeren Ordner bis zu einem fertigen CLI-Dienstprogramm, das mit dem Befehl npm install -g installiert werden kann.
Was werden wir bauen?
\nStellen Sie sich vor: Sie arbeiten oft mit JSON-Dateien und müssen schnell die Anzahl der Felder zählen, die Gültigkeit prüfen oder in CSV konvertieren. Wir schreiben das Dienstprogramm json-toolkit, das drei Dinge tut:
- \n
- validate — prüft JSON auf Gültigkeit; \n
- count — zählt die Anzahl der Schlüssel der obersten Ebene; \n
- to-csv — konvertiert ein Array von Objekten in CSV. \n
Klingt einfach? Ja. Aber an diesem Beispiel lernen Sie alle wichtigen Techniken: Argumentverarbeitung, Dateisystemzugriff, Farben im Terminal und Fehlerbehandlung.
\n\nSchritt 1. Projekteinrichtung
\nAls erstes erstellen wir einen Ordner und initialisieren das Projekt:
\nmkdir json-toolkit\ncd json-toolkit\nnpm init -y\nJetzt installieren wir TypeScript und die notwendigen Pakete:
\nnpm install -D typescript @types/node\nnpm install commander chalk\n- \n
commander— Bibliothek zum Parsen von Befehlszeilenargumenten (Analogon zu Python-Argparse, aber bequemer); \n chalk— färbt die Ausgabe im Terminal ein; \n @types/node— Typen für Node.js. \n
Erstellen Sie tsconfig.json:
{\n "compilerOptions": {\n "target": "ES2020",\n "module": "commonjs",\n "outDir": "./dist",\n "rootDir": "./src",\n "strict": true,\n "esModuleInterop": true,\n "declaration": true\n },\n "include": ["src/**/*"]\n}\nBeachten Sie: outDir ist der Ordner, in den der Code kompiliert wird, und rootDir sind die Quellen. Dies ist eine Standardpraxis für TypeScript-Projekte.
Schritt 2. Den Kern des Dienstprogramms schreiben
\nErstellen Sie den Ordner src und die Datei src/index.ts. Beginnen wir mit den Importen und der Einrichtung von Commander:
import { Command } from 'commander';\nimport { readFileSync, existsSync } from 'fs';\nimport chalk from 'chalk';\n\nconst program = new Command();\n\nprogram\n .name('json-toolkit')\n .description('Dienstprogramm für die Arbeit mit JSON-Dateien')\n .version('1.0.0');\n\nprogram\n .command('validate')\n .argument('<file>', 'Pfad zur JSON-Datei')\n .description('JSON-Gültigkeit prüfen')\n .action((file: string) => {\n try {\n const content = readFileSync(file, 'utf-8');\n JSON.parse(content);\n console.log(chalk.green('✓ JSON ist gültig!'));\n } catch (err) {\n console.error(chalk.red('✗ Fehler:'), (err as Error).message);\n }\n });\n\nprogram\n .command('count')\n .argument('<file>', 'Pfad zur JSON-Datei')\n .description('Anzahl der Schlüssel der obersten Ebene zählen')\n .action((file: string) => {\n if (!existsSync(file)) {\n console.error(chalk.red('Datei nicht gefunden!'));\n return;\n }\n const content = readFileSync(file, 'utf-8');\n const data = JSON.parse(content);\n const keys = Object