Utilitaires CLI en JavaScript : créez de zéro en 30 minutes

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Pourquoi des utilitaires CLI en JavaScript ?



Imaginez : vous renommez manuellement chaque jour des dossiers de rapports, convertissez du JSON en CSV ou recherchez des fichiers en double. Et si vous écriviez un petit programme qui ferait cela en une seconde sur commande dans le terminal ? C'est exactement à cela que servent les utilitaires CLI en JavaScript.



Contrairement aux applications web complètes, les CLI (Command Line Interface) sont des outils légers, rapides et très pratiques. Ils ne nécessitent pas de navigateur, fonctionnent sur n'importe quelle plateforme et s'intègrent facilement dans les scripts CI/CD. Sur PythonLib, nous discutons souvent d'automatisation, et aujourd'hui je vais vous montrer comment créer votre premier utilitaire CLI en Node.js de zéro. Vous serez surpris de voir à quel point c'est simple !



Dans cet article, nous parcourrons le chemin complet : de la configuration du projet à la publication du paquet prêt à l'emploi dans npm. Vous obtiendrez non seulement de la théorie, mais un code fonctionnel que vous pourrez immédiatement adapter à vos propres tâches.



Qu'est-ce qu'un utilitaire CLI et pourquoi JavaScript ?



Un utilitaire CLI est un programme qui s'exécute depuis la ligne de commande. Vous tapez my-tool --input file.txt — et il effectue l'action souhaitée. JavaScript est idéal pour cela, car :



  • Node.js est installé sur chaque serveur et presque sur chaque PC de développeur.
  • Une énorme quantité de modules prêts à l'emploi (npm) pour travailler avec des fichiers, le réseau, les formats de données.
  • Simplicité d'écriture : pas besoin de compiler, un seul fichier suffit.
  • Multiplateforme : votre outil fonctionnera sur Windows, macOS et Linux.


Même si vous êtes débutant en Node.js, vous y arriverez. Nous commencerons par le plus simple — un script qui affiche un message de bienvenue.



Étape 1 : Configuration du projet pour l'utilitaire CLI



Créez un dossier pour votre projet et initialisez npm :



mkdir my-first-clicd my-first-clinpm init -y


Ouvrez maintenant package.json. C'est le fichier de configuration principal de votre futur utilitaire CLI en JavaScript. Ajoutez-y le champ "bin" :



{  "name": "my-first-cli",  "version": "1.0.0",  "description": "Mon premier utilitaire CLI",  "bin": {    "greet": "./index.js"  },  "license": "MIT"}


Le champ "bin" est magique. Il indique à Node.js : « Lorsque l'utilisateur tape la commande greet, exécute le fichier index.js ». Notez que le nom de la commande (greet) peut être quelconque.



Créez maintenant index.js avec la première ligne — le shebang. C'est obligatoire pour une CLI :



#!/usr/bin/env node

console.log('Bonjour le monde ! Je suis votre premier utilitaire CLI !');


Le shebang #!/usr/bin/env node indique au système que le script doit être exécuté avec Node.js. Sans cela, la commande ne fonctionnera pas.



Étape 2 : Rendre l'utilitaire exécutable et le tester



Pour exécuter votre utilitaire CLI en JavaScript localement, lancez la commande :



npm link


Cette commande crée un lien global vers votre paquet. Maintenant, dans n'importe quel terminal, vous pouvez taper :



greet


Et vous verrez : Bonjour le monde ! Je suis votre premier utilitaire CLI ! Félicitations, vous venez de créer votre premier utilitaire !



Étape 3 : Analyse des arguments de la ligne de commande



Simplement afficher du texte est ennuyeux. Les véritables utilitaires CLI acceptent des arguments. Apprenons à les traiter. Node.js dispose d'un tableau intégré process.argv, mais pour des projets sérieux, il est préférable d'utiliser le module commander ou yargs.



Installons commander :



npm install commander


Réécrivons maintenant index.js :



#!/usr/bin/env node

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

program .name

Blogs

Book Recommendations