Comment créer une application CLI dans Node.js

Comment créer une application CLI dans Node.js
Des lecteurs comme vous contribuent à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

Les applications CLI (Command Line Interface) sont des applications textuelles simplistes qui s'exécutent dans le terminal pour effectuer des tâches spécifiques. Les applications CLI jouent un rôle crucial dans le flux de travail de presque tous les développeurs et professionnels de l'informatique.





Il s’agit principalement d’outils utilitaires qui interagissent avec le système d’exploitation ou des applications installées localement ou disponibles sur Internet pour effectuer une tâche en fonction des entrées et des directives de l’utilisateur.





Comprendre les applications CLI

Une interface de ligne de commande vous permet d'interagir avec un programme en tapant des lignes de texte. De nombreux programmes CLI s'exécutent différemment selon la commande que vous utilisez pour les démarrer.





Par exemple, le programme ls affiche les informations sur le fichier et le contenu des répertoires. Vous pourriez l'exécuter comme ceci :

comment retourner un jeu steam
 ls -l /home

Cette commande comprend :



  • Le nom du programme : ls .
  • Une option (ou un drapeau). Dans ce cas, -l est une option qui est l'abréviation de « long » et produit des informations plus détaillées.
  • Une dispute, /maison . Ici, l'argument spécifie un chemin d'accès au répertoire pour lequel afficher les informations.

Bien que chaque programme puisse définir sa propre interface de ligne de commande, certains éléments sont communs et largement utilisés. Vous devez suivre ces normes afin qu'une personne familiarisée avec une interface de ligne de commande puisse utiliser facilement vos programmes.

Qu'est-ce que Commander.js ?

Commander.js est un package qui vous permet de créer des applications CLI dans Node.js . Il dispose d'une riche bibliothèque de fonctionnalités qui vous permettent de créer une application CLI standard, effectuant une grande partie du travail fastidieux. Il vous suffit de définir les commandes, les options et les fonctionnalités de votre application CLI.





En le combinant avec d'autres packages tels que Chalk.js pour le style, vous pouvez rapidement créer une application CLI entièrement fonctionnelle dans Node.js.

Création d'une application CLI dans Node.js à l'aide de Commander.js

Prenons un exemple d'application CLI, urbain-cli, qui recherche la signification des mots et des abréviations des réseaux sociaux à partir de le dictionnaire urbain . Vous apprendrez à créer la CLI et à la publier sur le npm registre des packages afin que d'autres puissent l'installer.





Créez un nouveau dossier et initialisez un nouveau projet Node.js avec les commandes suivantes :

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

Cette CLI utilisera Axios pour envoyer des requêtes HTTP à l'API du dictionnaire urbain. Vous pouvez utiliser API rapide pour vérifier les points de terminaison et afficher les informations d'identification.

  Capture d'écran de l'API du dictionnaire urbain's page on Rapid API show user API credentials

Une CLI simple avec une sous-commande et une aide

Pour commencer à créer votre CLI, installez Commander et Axios avec la commande suivante :

 npm install commander axios 

Créer un nouveau dossier, poubelle , dans le répertoire de votre projet et un nouveau fichier vide, index.js :

 mkdir bin 
cd bin
touch index.js

Le poubelle (abréviation de « binaire ») est important car il contient le fichier de point d’entrée que Node appelle lorsque vous exécutez votre CLI. Le index.js file est ce fichier de point d’entrée. Maintenant, modifiez le fichier index.js et commencez à créer votre CLI avec l'API Commander.js.

Tout d’abord, importez le programme objet du commandant :

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

Vous utiliserez le programme objet pour définir l’interface de votre programme, y compris les sous-commandes, les options et les arguments. L'objet a des méthodes correspondantes pour chacune d'entre elles ; par exemple, pour définir une sous-commande, utilisez le commande méthode.

Définir un trouver sous-commande permettant à la CLI de rechercher des mots dans le dictionnaire urbain et d'y ajouter une description à l'aide du code ci-dessous :

 // index.js 
program
    .command('find <word>')
    .description('find meaning of a word or abbreviation or slang')

Ceci enregistre un trouver commande, qui attend un mot après et une description de celui-ci. L'utilisation de crochets angulaires signifie que le mot est un argument obligatoire ; utilisez plutôt des crochets ( [] ) pour le rendre facultatif.

Vous devez ajouter une description car Commander.js l'utilise pour générer du texte d'aide. Lorsque vous exécutez l'application avec le aide commande, vous obtiendrez un guide d’utilisation standard.

Pour tester cela, ajoutez ce qui suit :

 program.parse()

Ensuite, exécutez le programme et transmettez-le au aide commande pour obtenir le résultat ci-dessous :

  Capture d'écran montrant le résultat de l'exécution de la commande d'aide

C'est ainsi que n'importe quelle application CLI standard affichera son aide aux utilisateurs et, avec Commander, vous n'aurez pas à vous soucier de la créer vous-même. Le -h et --aide les options sont utiles pour vérifier le guide d’utilisation d’une commande.

Définir les options et préparer le programme final

Vous définissez également une option en chaînant les option méthode à la définition de la commande.

mon téléphone a surchauffé et ne s'allume pas

Voici comment définir une option pour inclure des exemples dans les définitions de mots :

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

Et voici comment définir une option spécifiant le nombre de définitions à renvoyer :

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

Le option La méthode accepte deux paramètres de chaîne, un pour le nom de l’option (formes courtes et longues) et l’autre pour sa description. L'extra [montant] argument dans le compter L'option est la valeur du nombre de définitions à afficher.

Maintenant, la dernière méthode à ajouter est la action méthode. Vous mettrez en œuvre le trouver fonctionnalité de la commande dans cette méthode. Ajoutez-le à la chaîne pour que votre code ressemble maintenant à ceci :

 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) => {});

Avec cette configuration, voici ce qu'est une commande pour obtenir trois définitions de mdr avec des exemples ressemblera à :

 urbanary-cli find lol -e -c 3 

​Ou, en utilisant la forme longue de chaque option :

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