müssen Sie zunächst sicherstellen, dass auf dem Computer eine node.js-Umgebung vorhanden ist
, und den folgenden Code in der Befehlszeile ausführen, um eine package.json
Datei zu initialisieren
npm init -y
Zu diesem Zeitpunkt wird definitiv ein Fehler gemeldet Ausführen mycli
auf der Befehlszeile.
Konfigurieren Sie den benutzerdefinierten Befehl
package.json
um das bin
Feld hinzuzufügen, und verknüpfen Sie mycli
-Befehl.
„bin“: { „mycli“: „./test.js“ },
/test.js
console.log („mycli-Befehl erfolgreich ausgeführt“);
install
ist erforderlich, aber das Projekt wurde nicht in npm veröffentlicht. Verwenden Sie daher vorerst den Befehl npm link
Ordnen Sie mycli
der globalen Welt zu.Wenn Sie mycli
zu diesem Zeitpunkt über die Befehlszeile ausführen, wird der Fehler nicht mehr gemeldet.
Skriptkonfiguration
test.js-Datei:
console.log("mycli-Befehlsausführung erfolgreich");
Führen Sie dann mycli
aus und ein Fehler-Popup-Fenster wird angezeigt.
Dies liegt daran, dass die Ausführung des mycli
-Befehls dem Ausführen der Datei durch den Computer entspricht und das Computersystem die js-Datei nicht direkt ausführen kann . Dies erfordert, dass wir der ersten Zeile des Skriptcodes eine Konfiguration hinzufügen, um node.js
auf dem Computer, um diese js-Skriptdatei auszuführen.
#!/usr/bin/env node
Da die Ausführungsumgebung geändert wurde, müssen Sie die zuvor verknüpften Dateien löschen. Der Dateispeicherort lautet möglicherweise C:Program Filesnodejsnode_modules
. Suchen Sie nach mycli
, löschen Sie es und führen Sie es dann aus npm link
noch einmal.
Führen Sie nun mycli
erneut auf der Konsole aus und Sie können sehen, dass die Konsole korrekt druckt.
Chalk
-Befehlszeile, um farbenfrohe Schriftarten auszugebenOra
-Ladeeffekt, ähnlich der interaktiven Funktion Progress Librarycommander
Design Commandinquirer
(z. B. Fragen stellen ...)Chalk-
npm install [email protected] -S
const chalk = require("chalk"); // Kreide // const hello = chalk.red("hello"); // const hello = chalk.blue.bgRed("hello"); // const hello = chalk.blue.bgYellow("hello"); const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("hello"); console.log(Hallo);
Ora
npm install [email protected] -S
const ora = require("ora"); // ora const spinner = ora({ Text: „Installieren...“ }); spinner.start(); setTimeout(() => { // spinner.stop(); spinner.succeed("Installation erfolgreich"); // console.log("Installation erfolgreich"); }, 2000)
start
“ startet den Ladevorgang,stop
stoppt den Ladevorgang“ undsucceed
beendet den Ladevorgang“ im ErfolgsstilCommander
-Entwicklung verwendet werden, wie z. B. vue -V
git --version
vue create
und andere Befehle, müssen zur Implementierung solcher Befehle die Commander -Bibliothek verwenden.
-V
--help
usw., nachdem der Befehl verwendet wurde, können als Parameter des Befehls verstanden werden. Dann müssen wir diese Parameter erhalten und verschiedene Ereignisse behandeln, indem wir die Unterschiede in den Parametern beurteilen.
In der Knotenumgebung kann dieser Parameter über process.argv
abgerufen werden. Die Commander -Bibliothek hilft uns, einige Methoden zu kapseln, ohne dass wir die Anweisungen der Benutzereingaben beurteilen müssen.
npm install [email protected] -S
const commander = require("commander"); // ... commander.parse(process.argv); // Nach
Abschluss der Installation stellt uns Commander automatisch einige Befehle zur Verfügung, z. B. --help
. Testen wir es unten:
mycli --help
des Commandersfestzulegen
. version("1.0.0");
Führen Sie mycli -V
aus und Sie können sehen, dass die Konsole die Versionsnummer 1.0.0
ausgibt.
Die benutzerdefinierte Befehlsmethode
commander.option(指令名, 描述, 回调函数)
--init
:commander.option("--init", "this is init", () => { // Kreide // const hello = chalk.red("hello"); // const hello = chalk.blue.bgRed("hello"); // const hello = chalk.blue.bgYellow("hello"); const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("hello"); console.log(Hallo); // ora const spinner = ora({ Text: „Installieren...“ }); spinner.start(); setTimeout(() => { // spinner.stop(); spinner.succeed("Installation erfolgreich"); // console.log("Installation erfolgreich"); }, 1000) })
Führen Sie nun mycli --init
test aus:
ist commander.option("--number <num>", "log a number", (num) => { console.log(num); })
<参数名>
gibt die Parameter an, die übergeben werden müssen, und [参数名]
gibt die Parameter an, die nicht übergeben werden müssen. Geben Sie mycli --number 100
in die Konsole ein und drücken Sie die Eingabetaste. Sie können sehen 100
ausgegeben wird.
Benutzerdefinierte Befehlsmethode
commander.command("create <projectName>").action((projectName)=>{ console.log(Projektname); })
Führen Sie mycli create xx
aus und drücken Sie die Eingabetaste. Sie können sehen xx
auf der Konsole ausgegeben wird.
Sehen Sie sich die Hilfe an
, indem Sie mycli --help
ausführen. Sie können sehen, dass die Anweisungen und Befehle, die wir gerade konfiguriert haben, in der Hilfeliste angezeigt werden.
„Inquirer“
npm install „inquirer -S“
prompt
zum Fragen von„inquirer.prompt([ { Typ: „Eingabe“, Name: „Benutzername“, Nachricht: „Bitte geben Sie den Benutzernamen ein:“ } ]).then((answer)=>{ })
type
gibt den Typ der Frage an und der Wert kann sein: input
, number
, password
, editor
usw.
answer
ist {username: 输入的值}
input
des Eingabetyps.const discoverer = require("inquirer"); commander.command("Benutzer hinzufügen").action(() => { discoverer.prompt([ { Typ: „Eingabe“, Name: „Benutzername“, Nachricht: „Bitte geben Sie den Benutzernamen ein:“ } ]).then((Antwort) => { console.log(answer); }) })
confirm
commander.command("testcon").action(() => { discoverer.prompt([ { Typ: „Bestätigen“, Name: „Alter“, Nachricht: „Sind Sie über 18 Jahre alt?“ } ]).then((Antwort) => { console.log(answer); }) })
Geben Sie y
oder n
ein, um ein Urteil zu fällen.
list
commander.command("testlist").action(() => { discoverer.prompt([ { Typ: „Liste“, Name: „lib“, Nachricht: „Wählen Sie das zu verwendende Framework aus:“, Auswahlmöglichkeiten: [ „vue2“, „vue3“, "reagieren", „schlank“, ] } ]).then((Antwort) => { console.log(answer); }) })
Führen Sie den Befehl mycli testlist
aus:
download-git-repo ist ein Tool zum Abrufen von Code.
Installieren Sie
npm install [email protected] -S
const downgit = require("download-git-repo"); downgit("github:kongcodes/vue3-vant", downUrl, { clone: false }, function (err) { console.log(fehler) })
Der erste Parameter in der downgit
-Methode ist das Herunterladen der vue3-vant
-Projektvorlage des Kongcodes-Benutzers von Github. Der zweite Parameter downUrl
ist das Verzeichnis, in das die Vorlage heruntergeladen werden soll. Der dritte clone
ist, ob git clone
zum Herunterladen verwendet werden soll. Der vierte Parameter enthält einige Dinge, die ausgeführt werden sollen, wenn der Download abgeschlossen ist.
command
commander.command("create <projectName>").action((projectName) => {in Verbindung mit der Befehlsmethode
const spinner = ora({ text: „https://github.com/kongcodes/vue3-vant wird heruntergeladen …“ }); spinner.start(); fs.mkdirSync(`./${projectName}`); const downUrl = `${process.cwd()}\${projectName}`; downgit("github:kongcodes/vue3-vant", downUrl, { clone: false }, function (err) { if (err) throw err; spinner.stop(); console.log(chalk.green("downgit success")); }) })
Führen Sie mycli create pro
aus und drücken Sie die Eingabetaste. Das pro
-Verzeichnis wird im aktuellen Verzeichnis erstellt und vue3-vant
-Vorlage wird in dieses Verzeichnis heruntergeladen.
https://github.com/kongcodes/mycli