Einführung in Node.js, Folge 22: CLI-Anwendungen

Node.js wird in der Regel als Laufzeitumgebung für Webanwendungen verwendet. Doch es eignet sich auch für andere Arten von Anwendungen wie Konsolenprogramme. Das wirft jedoch eine Reihe von Problemen auf, von der Analyse der Parameter bis zur Ausgabe der Hilfe. Wie lässt sich das bewerkstelligen?

In Pocket speichern vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Golo Roden

Node.js wird in der Regel als Laufzeitumgebung für Webanwendungen verwendet. Doch es eignet sich auch für andere Arten von Anwendungen wie Konsolenprogramme. Das wirft jedoch eine Reihe von Problemen auf, von der Analyse der Parameter bis zur Ausgabe der Hilfe. Wie lässt sich das bewerkstelligen?

Gibt man einer in Node.js entwickelten Anwendung die passenden Rechte im Dateisystem und versieht sie mit dem passenden Shebang, lässt sie sich wie ein Binärprogramm aufrufen.

Mehr Infos

Die größte Herausforderung bei der Definition eines Command-Line-Interface (CLI) besteht technisch gesehen in der Analyse der übergebenen Parameter, da es hier zahlreiche Varianten gibt: Parameter können über Aliasnamen und Standardwerte verfügen, sie können einfach oder mehrfach zulässig sein, verpflichtend oder optional.

Auch die Definition von Kommandos stellt eine gewisse Hürde dar, da sie dedizierte Hilfetexte und unterschiedliche Parametersets erfordern. Ebenfalls schwierig kann die Ausgabe an sich sein, die üblicherweise formatiert erfolgen soll.

Zu all diesen Zwecken gibt es verschiedene Module, einschließlich ganzer Komplettlösungen. Leider bieten sie selten alle Funktionen, die man benötigt, und engen andererseits durch gewisse Vorgaben ein. Daher ist es unter Umständen schwierig, mit einem solchen Modul glücklich zu werden.

Abhilfe schafft eine Reihe zwar aufeinander abgestimmter, aber dennoch eigenständiger Module: command-line-args, command-line-commands und command-line-usage bieten Lösungen für die wichtigsten Probleme, dem Analysieren von Parametern, dem Definieren von Kommandos und dem Anzeigen der Hilfe.

Ergänzen lassen sie sich durch findsuggestions und buntstift, die für Vorschläge bei falsch geschriebenen Kommandos und eine formatierte Ausgabe sorgen.

Nimmt man alle diese Module zusammen, ergibt sich ein flexibles und zugleich mächtiges System aus einzelnen kleinen Bausteinen, die sich auf vielfältige Art gemeinsam verwenden lassen.

Wie das alles funktioniert und welche Fallstricke es dabei zu beachten gilt, zeigt das folgende Video:

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier eine Vimeo-Video (Vimeo LLC) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Vimeo LLC) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

tl;dr: Node.js eignet sich auch zum Schreiben von CLI-Anwendungen. Verschiedene Module ermöglichen das komfortable und flexible Analysieren von Parametern, das Definieren von Kommandos und das Anzeigen der Hilfe. ()