vous devez d'abord vous assurer qu'il existe un environnement node.js sur l'ordinateur
et exécuter le code suivant sur la ligne de commande pour initialiser un fichier package.json
npm init -y
. exécuter mycli
sur la ligne de commande.
Configurez la commande personnalisée
package.json
pour ajouter le champ bin
, et associez mycli
.
"bin" : { "mycli": "./test.js" },
/test.js
console.log ("commande mycli exécutée avec succès");
install
est requise, mais le projet n'a pas été publié sur npm, donc pour le moment, utilisez la commande npm link
pour associez mycli
au monde global.À ce stade, si vous exécutez mycli
depuis la ligne de commande, l'erreur ne sera plus signalée.
Fichier test.js
de configuration du script
:console.log("exécution de la commande mycli réussie");
Ensuite, exécutez mycli
et une fenêtre contextuelle d'erreur apparaîtra.
En effet, lors de l'exécution de la commande mycli
, cela équivaut à laisser l'ordinateur exécuter le fichier et le système informatique ne peut pas exécuter directement le fichier js . Cela nous oblige à ajouter une configuration à la première ligne du code de script pour spécifier node.js
sur le programme informatique pour exécuter ce fichier de script js.
#!/usr/bin/env node
L'environnement d'exécution ayant été modifié, vous devez supprimer les fichiers précédemment liés. L'emplacement mycli
fichier peut être C:Program Filesnodejsnode_modules
. npm link
à nouveau.
Maintenant, exécutez à nouveau mycli
sur la console et vous pourrez voir que la console s'imprime correctement.
Chalk
pour générer des polices coloréesOra
, similaire à lacommander
inquirer
telle que : poser des questions...)de Chalk
npm install [email protected] -S
const craie = require("chalk"); // craie // const bonjour = craie.red("bonjour"); // const bonjour = chalk.blue.bgRed("bonjour"); // const bonjour = chalk.blue.bgYellow("bonjour"); const bonjour = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("bonjour"); console.log(bonjour);
d'Ora
npm install [email protected] -S
const ora = require("ora"); // ora const spinner = ora({ texte : "Installation..." }); spinner.start(); setTimeout(() => { // spinner.stop(); spinner.succeed("Installation réussie"); // console.log("Installation réussie"); }, 2000)
start
démarre le chargementstop
arrête le chargementsucceed
termine le chargement avec un style réusside Commander
, telles que vue -V
git --version
vue create
et d'autres commandes, doivent utiliser la bibliothèque Commander pour implémenter ces commandes.
-V
--help
, etc. après que la commande utilisée peut être comprise comme les paramètres de la commande. Ensuite, nous devons obtenir ces paramètres et gérer différents événements en jugeant les différences de paramètres.
Dans l'environnement de nœud , ce paramètre peut être obtenu via process.argv
. La bibliothèque Commander nous aide à encapsuler certaines méthodes sans que nous ayons à juger les instructions véhiculées par l'entrée de l'utilisateur.
npm install [email protected] -S
const commander = require("commander"); //... commander.parse(process.argv); // Une fois
l'installation terminée, commander nous fournira automatiquement certaines commandes, telles que --help
. Testons-le ci-dessous :
mycli --help
de commander. . version("1.0.0");
Exécutez mycli -V
et vous pouvez voir que la console imprime le numéro de version 1.0.0
.
La méthode de commande personnalisée
commander.option(指令名, 描述, 回调函数)
--init
:commander.option("--init", "this is init", () => { // craie // const bonjour = craie.red("bonjour"); // const bonjour = chalk.blue.bgRed("bonjour"); // const bonjour = chalk.blue.bgYellow("bonjour"); const bonjour = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("bonjour"); console.log(bonjour); // ora const spinner = ora({ texte : "Installation..." }); spinner.start(); setTimeout(() => { // spinner.stop(); spinner.succeed("Installation réussie"); // console.log("Installation réussie"); }, 1000) })
Exécutez maintenant le test mycli --init
:
est commander.option("--number <num>", "log a number", (num) => { console.log(num); })
<参数名>
indique les paramètres qui doivent être transmis et [参数名]
indique les paramètres qui ne doivent pas être transmis. Entrez mycli --number 100
sur la console et appuyez sur Entrée. Vous pouvez voir 100
sera affiché.
Méthode de commande personnalisée
commander.command("create <projectName>").action((projectName)=>{ console.log(nom du projet); })
Exécutez mycli create xx
et appuyez sur Entrée. Vous pouvez voir xx
est affiché sur la console.
Consultez l'aide
en exécutant mycli --help
. Vous pouvez voir que les instructions et commandes que nous venons de configurer apparaissent dans la liste d'aide.
du demandeur
npm install seeker -S
prompt
pour demanderau demandeur.prompt([ { tapez : "entrée", nom : "nom d'utilisateur", message : "Veuillez saisir votre nom d'utilisateur :" } ]).then((réponse)=>{ })
type
indique le type de question, et la valeur peut être : input
, number
, password
, editor
, etc.
answer
est {username: 输入的值}
input
de type d'entréeconst Inquirer = require("inquirer"); commander.command("ajouter un utilisateur").action(() => { demandeur.prompt([ { tapez : "entrée", nom : "nom d'utilisateur", message : "Veuillez saisir votre nom d'utilisateur :" } ]).then((réponse) => { console.log(réponse); }) })
confirm
commander.command("testcon").action(() => { demandeur.prompt([ { tapez : "confirmer", nom : "âge", message : « Avez-vous plus de 18 ans ? » } ]).then((réponse) => { console.log(réponse); }) })
Entrez y
ou n
pour porter un jugement.
list
de types de sélection radiocommander.command("testlist").action(() => { demandeur.prompt([ { tapez : "liste", nom : "lib", message : "Sélectionnez le framework à utiliser :", choix : [ "vue2", "vue3", "réagir", "svelte", ] } ]).then((réponse) => { console.log(réponse); }) })
Exécutez la commande mycli testlist
:
download-git-repo est un outil pour extraire du code.
Installez
npm install [email protected] -S
const downgit = require("download-git-repo"); downgit("github:kongcodes/vue3-vant", downUrl, { clone: false }, function (err) { console.log (erreur) })
Le premier paramètre de la méthode downgit
est censé télécharger le modèle de projet vue3-vant
de l'utilisateur kongcodes depuis github. Le deuxième paramètre downUrl
est le répertoire dans lequel le modèle doit être téléchargé. Le troisième paramètre clone
est de savoir s'il faut utiliser git clone
pour télécharger. Le quatrième paramètre concerne certaines choses à exécuter une fois le téléchargement terminé.
command
commander.command("create <projectName>").action((projectName) => {en conjonction avec la méthode de commande
const spinner = ora({ texte : "Téléchargement https://github.com/kongcodes/vue3-vant..." }); 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")); }) })
Exécutez mycli create pro
et appuyez sur Entrée. Le répertoire pro
sera créé dans le répertoire actuel et vue3-vant
sera téléchargé dans ce répertoire.
https://github.com/kongcodes/mycli