Verwenden Sie diese Bibliotheken und Dienstprogramme, um moderne CLI-Programme mit allem nötigen Schnickschnack zu erstellen.
Eine Befehlszeilenschnittstelle (CLI) ist eine Möglichkeit, mithilfe textbasierter Befehle mit einem Computerprogramm oder Betriebssystem zu interagieren. Ein CLI-Tool ist ein Dienstprogramm, das Sie über eine Befehlszeile ausführen können. CLI-Tools nehmen normalerweise textbasierte Befehle vom Benutzer entgegen und führen bestimmte Aufgaben basierend auf den Befehlen aus.
Hochwertige CLI-Tools sollten eine breite Palette von Funktionen unterstützen. Sie können unter anderem Befehlszeilenargumente parsen und Nutzungshilfen generieren, um visuelles Feedback zu geben.
Es gibt mehrere Node.js-Pakete, mit denen Sie schnell CLI-Tools erstellen können, die eine breite Palette an Funktionen und Flexibilität bieten. Hier erkunden Sie einige der besten Node.js-Pakete zum Erstellen von CLI-Tools und entdecken ihre wichtigsten Funktionen.
Commander ist ein Node.js-Paket zum Erstellen von Befehlszeilenschnittstellen. Es bietet eine API zum Definieren von Befehlen, Optionen und Argumenten, wodurch die Erstellung von CLI-Tools vereinfacht wird.
Commander kümmert sich um das Parsen von Argumenten in Optionen und Befehlszeilenargumente. Darüber hinaus zeigt es Fehler bei Problemen und nicht erkannten Optionen an und generiert automatisch eine Hilfe zur Verwendung (CLI-Dokumentation).
Um Commander als Abhängigkeit zu installieren, führen Sie diesen Befehl aus:
npm Installieren Kommandant
Hier ist ein Beispiel für die Verwendung von Commander in einer Node.js-App:
// index.js
konst {Befehl} = erfordern("Kommandant");// Erstellen einer Befehlsinstanz
konst Programm = neu Befehl();// Werkzeug erstellen
Programm
.Name("Math-util")
.Beschreibung("Ein CLI-Tool zum Ausführen einfacher mathematischer Funktionen")
.Ausführung("1.0.0");// Befehl hinzufügen
Programm
.Befehl("hinzufügen")
.Beschreibung("Addiere zwei Zahlen")
.Streit("" , "erste Nummer")
.Streit("" , "zweite Nummer")
.Aktion((ein, b) => {
Konsole.Protokoll(parseInt(a) + parseInt(B));
});
Programm.parsen();
Das obige Beispiel ist ein CLI-Tool zum Ausführen einfacher mathematischer Funktionen. Der obige Codeblock implementierte die „Hinzufügen“-Funktionalität für das CLI-Tool mithilfe von Methoden aus commander.js.
Sie können das obige CLI-Tool verwenden, indem Sie diesen Befehl in Ihrem Terminal ausführen:
Knotenindex hinzufügen 2 2
Sie können auch die automatisch generierte Hilfe für das CLI-Tool anzeigen, indem Sie diesen Befehl ausführen:
Knoten CLI -h
Mit dem Commander.js-Paket können Sie mit einfachen Befehlen sofort voll ausgestattete und funktionale CLI-Tools mit Dokumentation erstellen.
Inquirer.js ist ein Node.js-Paket zum Erstellen interaktiver Befehlszeilen-Benutzeroberflächen. Es bietet eine Reihe von UI-Komponenten wie Eingabeaufforderungen, Listen und Kontrollkästchen, wodurch es einfach ist, CLI-Tools zu erstellen, die mit dem Benutzer interagieren können.
Um Inquirer als Abhängigkeit zu installieren, führen Sie diesen Befehl aus:
npm Installieren Fragesteller
Hier ist ein Beispiel für die Verwendung von Inquirer.js:
// index.js
importieren Fragesteller aus"Fragesteller";
Fragesteller
.prompt([
{
Typ: "Eingang",
Name: "Name",
Nachricht: "Wie heissen Sie?",
},
])
.Dann((Antworten) => {
Konsole.Protokoll(„Hallo ${Antworten.Name}`);
});
Dieses Beispiel verwendet Inquirer.js, um Benutzereingaben vom Terminal entgegenzunehmen, und protokolliert eine Nachricht mit der Begrüßung des Benutzers.
Inquirer.js unterstützt CommonJS nicht Modulsystem. Sie müssen das ES6-Modulsystem verwenden oder das Paket auf Version 8.0.0 herunterstufen.
Inquirer.js bietet viele Anpassungsoptionen für Eingabeaufforderungen, darunter Auswahlmöglichkeiten, Validierung und Standardwerte, wodurch es sich ideal zum Erstellen interaktiver CLI-Tools eignet, die mit dem Benutzer interagieren können.
Chalk ist ein Node.js-Paket, das eine einfache Möglichkeit bietet, der Terminalausgabe Farben hinzuzufügen, wodurch das Erstellen lesbarer und attraktiver CLI-Tools einfach wird.
Es bietet viel Flexibilität beim Definieren von Farben und Stilen für Text. Sie können Chalk jedoch nicht isoliert verwenden, um CLI-Tools zu erstellen. Sie müssen es mit Paketen wie Commander und Inquirer.js verwenden.
Um Chalk als Abhängigkeit zu installieren, führen Sie diesen Befehl aus:
npm Installieren Kreide
Hier ist ein Beispiel für die Verwendung von Chalk zum Hinzufügen von Farben zur Konsolenausgabe:
importieren Kreide aus"Kreide";
Konsole.log (kreide.blau("Hallo Welt!"));
Konsole.Protokoll(Kreide.Rot.deutlich("Warnung"));
Konsole.Protokoll(Kreide.Weiss.kursiv("Erfolg"));
Konsole.Protokoll(
Kreide.Gelb.bgBlau("DasTexthatAGelbVordergrundUndBlauHintergrund")
);
Chalk bietet viele andere Methoden zum Definieren von Farben und Stilen, einschließlich unterstreichen, durchgestrichen, verschiedene Schattierungen von Hintergrundfarben und vieles mehr.
Chalk unterstützt das CommonJS-Modulsystem nicht. Sie müssen das ES6-Modulsystem verwenden oder das Paket auf Version 4.0.0 herunterstufen.
Chalk ist ein großartiges Paket, um Ihre CLI-Tools optisch ansprechender und lesbarer zu machen. Darüber hinaus können Sie es ohne komplexe Konfiguration einfach in Ihren vorhandenen Code integrieren.
Node Spinner ist ein Node.js-Paket, das eine einfache Möglichkeit bietet, eine Spinner-Animation in Ihren CLI-Tools anzuzeigen. Sie können dieses Paket verwenden, um anzuzeigen, dass ein lang andauernder Prozess ausgeführt wird, und dem Benutzer einen visuellen Hinweis darauf zu geben, dass das Tool noch funktioniert.
Um Node Spinner als Abhängigkeit zu installieren, führen Sie diesen Befehl aus:
npm Installieren CLI-Spinner
Hier ist ein Beispiel für die Verwendung von Node Spinner zum Anzeigen einer Spinner-Animation:
konst Spinner = erfordern("cli-spinner").Spinner;
konst Spinner = neu Spinner("wird bearbeitet... %S");
spinner.setSpinnerString("|/-\\\\");
Spinner.Start();setTimeout(() => {
spinner.text = "Aufgabe erledigt.";
setTimeout(() => {
Spinner.stoppen();
}, 500);
}, 5000);
Dieser Code verwendet die Bibliothek, um ein Spinner anzuzeigen, bis ein Prozess abgeschlossen ist. Der Code simuliert einen Vorgang, der 5 Sekunden dauert, indem er verwendet setTimeout. Am Ende der Zeit ändert es den Anzeigetext von „Bearbeitung...“ auf „Aufgabe abgeschlossen“. und stoppt den Spinner 0,5 Sekunden später.
Node Spinner bietet eine Reihe von Anpassungsoptionen, z. B. das Ändern der Spinnerstile und des Textes. Es unterstützt auch mehrere Spinner, sodass Sie verschiedene Animationen für verschiedene Teile Ihres CLI-Tools anzeigen können.
Figlet ist ein Node.js-Paket, das eine einfache Möglichkeit bietet Erstellen Sie ASCII-Kunst aus Text.
Um Figlet als Abhängigkeit zu installieren, führen Sie diesen Befehl aus:
npm Installieren Feige
Hier ist ein Beispiel für die Verwendung von figlet zum Generieren von ASCII-Art:
konst Feigling = erfordern("Feigling");
Feige ("Hallo Welt!!", (ähm, Daten) => {
wenn (fehler) {
Konsole.Protokoll("Entschuldigung, etwas ist schief gelaufen");
Konsole.dir (fehler);
zurückkehren;
}
Konsole.Logdaten);
});
Das obige Beispiel erstellt ASCII-Grafiken mit der Zeichenfolge „Hello World!“ mit Figlet und meldet es an der Konsole an.
Das Ausführen dieses Beispiels sollte die folgende Ausgabe erzeugen:
Figlet bietet viele Schriftstile, mit denen Sie das Erscheinungsbild Ihrer ASCII-Grafik anpassen können. Sie können einen Schriftstil angeben, indem Sie ein Optionsobjekt an die übergeben Feige Funktion.
Zum Beispiel:
Feige ("Hallo Welt!!", { Schriftart: "Glocke" }, (err, Daten) => {})
Die Verwendung von Figlet in Ihrem CLI-Tool fügt Ihren Tools visuelles Interesse hinzu und macht sie ansprechender für Ihre Benutzer.
Bei der Auswahl von Paketen für Ihr CLI-Tool müssen Sie Ihre Anforderungen berücksichtigen und die Pakete auswählen, die die ihnen entsprechende Funktionalität, Gestaltung und Kompatibilität bieten.
Das Node.js-Ökosystem bietet verschiedene Pakete, die Befehlszeilenargumente parsen, eine Befehlszeilen-UI erstellen, stilisierten Text anzeigen und vieles mehr. Durch die Nutzung der richtigen Mischung können Sie CLI-Tools erstellen, die sowohl hochfunktional als auch benutzerfreundlich sind.