So erstellen Sie eine CLI-Anwendung in Node.js

So erstellen Sie eine CLI-Anwendung in Node.js
Leser wie Sie unterstützen MUO. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Mehr lesen.

CLI-Anwendungen (Command Line Interface) sind einfache textbasierte Apps, die im Terminal ausgeführt werden, um bestimmte Aufgaben auszuführen. CLI-Anwendungen spielen eine entscheidende Rolle im Arbeitsablauf fast aller Entwickler und IT-Experten.





Dabei handelt es sich meist um Hilfsprogramme, die mit dem Betriebssystem oder Anwendungen interagieren, die entweder lokal installiert oder über das Internet verfügbar sind, um eine Aufgabe gemäß den Eingaben und Anweisungen des Benutzers auszuführen.





CLI-Anwendungen verstehen

Über eine Befehlszeilenschnittstelle können Sie mit einem Programm interagieren, indem Sie Textzeilen eingeben. Viele CLI-Programme werden unterschiedlich ausgeführt, je nachdem, mit welchem ​​Befehl Sie sie starten.





Zum Beispiel, Das ls-Programm zeigt Dateiinformationen an und den Inhalt von Verzeichnissen. Sie könnten es so ausführen:

finde ein Kleid von einem Bild
 ls -l /home

Dieser Befehl beinhaltet:



  • Der Name des Programms: ls .
  • Eine Option (oder Flagge). In diesem Fall, -l ist eine Abkürzung für „long“ und liefert detailliertere Informationen.
  • Ein Argument, /heim . Hier gibt das Argument einen Pfad zum Verzeichnis an, für das Informationen angezeigt werden sollen.

Während jedes Programm seine eigene Befehlszeilenschnittstelle definieren kann, sind bestimmte Elemente üblich und werden häufig verwendet. Sie sollten diese Standards befolgen, damit jemand, der mit einer Befehlszeilenschnittstelle vertraut ist, Ihre Programme problemlos verwenden kann.

Was ist Commander.js?

Commander.js ist ein Paket, mit dem Sie CLI-Apps in Node.js erstellen können . Es verfügt über eine umfangreiche Funktionsbibliothek, mit der Sie eine Standard-CLI-Anwendung erstellen und einen Großteil der schweren Arbeit erledigen können. Sie müssen lediglich Befehle, Optionen und Funktionen für Ihre CLI-App definieren.





Durch die Kombination mit anderen Paketen wie Chalk.js zur Gestaltung können Sie schnell eine voll funktionsfähige CLI-App in Node.js erstellen.

Erstellen einer CLI-Anwendung in Node.js mit Commander.js

Betrachten Sie eine Beispiel-CLI-App, urbanary-cli, Hier werden die Bedeutung von Wörtern und Abkürzungen in den sozialen Medien nachgeschlagen das Urban Dictionary . Sie erfahren, wie Sie die CLI erstellen und im veröffentlichen npm Paketregistrierung, damit andere es installieren können.





Erstellen Sie einen neuen Ordner und initialisieren Sie ein neues Node.js-Projekt mit den folgenden Befehlen:

 mkdir urbanary-cli 
cd urbanary-cli
npm init -y

Diese CLI wird verwendet Axios zum Senden von HTTP-Anfragen zur Urban Dictionary API. Sie können verwenden Schnelle API um Endpunkte zu überprüfen und Anmeldeinformationen anzuzeigen.

  Screenshot der Urban Dictionary-API's page on Rapid API show user API credentials

Eine einfache CLI mit einem Unterbefehl und Hilfe

Um mit dem Aufbau Ihrer CLI zu beginnen, installieren Sie Commander und Axios mit dem folgenden Befehl:

 npm install commander axios 

Einen neuen Ordner erstellen, Behälter , in Ihrem Projektverzeichnis und eine neue leere Datei, index.js :

 mkdir bin 
cd bin
touch index.js

Der Behälter (kurz für „binär“) ist wichtig, da er die Einstiegspunktdatei enthält, die Node aufruft, wenn Sie Ihre CLI ausführen. Der index.js file ist diese Einstiegspunktdatei. Bearbeiten Sie nun die Datei index.js und beginnen Sie mit der Erstellung Ihrer CLI mit der Commander.js-API.

Importieren Sie zunächst die Programm Objekt von Commander:

 const { program } = require('commander'); 

Sie werden das verwenden Programm Objekt, um die Schnittstelle Ihres Programms zu definieren, einschließlich Unterbefehlen, Optionen und Argumenten. Das Objekt verfügt für jede dieser Methoden über entsprechende Methoden. Um beispielsweise einen Unterbefehl zu definieren, verwenden Sie den Befehl Methode.

Definieren Sie a finden Unterbefehl für die CLI, um nach Wörtern im Urban Dictionary zu suchen und mithilfe des folgenden Codes eine Beschreibung hinzuzufügen:

So ändern Sie die Farbe des Ordners auf dem Mac
 // index.js 
program
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')

Dies registriert a finden Befehl, der ein Wort danach und eine Beschreibung dafür erwartet. Die Verwendung von spitzen Klammern bedeutet, dass das Wort ein erforderliches Argument ist; Verwenden Sie stattdessen eckige Klammern ( [] ), um es optional zu machen.

Sie sollten eine Beschreibung hinzufügen, da Commander.js diese zum Generieren von Hilfetext verwendet. Wenn Sie die Anwendung mit dem ausführen helfen Wenn Sie den Befehl ausführen, erhalten Sie eine Standard-Bedienungsanleitung.

Um dies zu testen, fügen Sie Folgendes hinzu:

 program.parse()

Führen Sie dann das Programm aus und übergeben Sie es helfen Befehl, um die folgende Ausgabe zu erhalten:

  Screenshot, der die Ausgabe der Ausführung des Hilfebefehls zeigt

Auf diese Weise zeigt jede Standard-CLI-Anwendung den Benutzern ihre Hilfe an, und mit Commander müssen Sie sich nicht darum kümmern, sie selbst zu erstellen. Der -H Und --helfen Optionen sind nützlich, um die Bedienungsanleitung für einen Befehl zu überprüfen.

Definieren von Optionen und Vorbereiten des endgültigen Programms

Sie definieren eine Option auch durch Verketten Möglichkeit -Methode zur Befehlsdefinition hinzufügen.

So definieren Sie eine Option, um Beispiele in die Wortdefinitionen aufzunehmen:

 program.option('-e, --example', "Display examples") 

Und so definieren Sie eine Option, die die Anzahl der zurückzugebenden Definitionen angibt:

 program.option( 
    '-c, --count [amount]',
    'amount of definitions to display (max is 10)'
)

Der Möglichkeit Die Methode akzeptiert zwei Zeichenfolgenparameter, einen für den Namen der Option (sowohl Kurz- als auch Langform) und den anderen für ihre Beschreibung. Das Extra [Menge] Argument in der zählen Option ist der Wert für die Anzahl der anzuzeigenden Definitionen.

Die letzte hinzuzufügende Methode ist nun die Aktion Methode. Sie werden das umsetzen finden Die Funktionalität des Befehls innerhalb dieser Methode. Fügen Sie es der Kette hinzu, sodass Ihr Code nun wie folgt aussieht:

 program 
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')
    .option('-e, --example', "Display examples")
    .option(
        '-c, --count [amount]',
        'amount of definitions to display (max is 10)'
    )
    .action(async (word, options) => {});

Mit diesem Setup erhalten Sie hier drei Definitionen für einen Befehl Lol mit Beispielen sieht so aus:

 urbanary-cli find lol -e -c 3 

Oder verwenden Sie die Langform jeder Option:

 urbanary-cli find lol --example --count 3