Framework CLI para JavaScript (Node.js): Commander.js – creación de aplicaciones de consola

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Commander.js: Creación de potentes aplicaciones de consola en Node.js



En el mundo del desarrollo web moderno y la automatización, las aplicaciones de consola (CLI) juegan un papel clave. Permiten automatizar tareas rutinarias, gestionar proyectos, desplegar código e interactuar con APIs sin utilizar una interfaz gráfica. Si escribes en JavaScript (Node.js), la mejor opción para crear herramientas CLI elegantes y funcionales es el framework Commander.js.



Commander.js es una biblioteca ligera, pero increíblemente potente, que se encarga de toda la rutina de análisis de argumentos de línea de comandos, generación de ayuda y manejo de errores. Con ella, puedes convertir un script simple en una aplicación de consola profesional con soporte para subcomandos, opciones y validación automática. En este artículo, analizaremos en detalle cómo usar Commander.js en el sitio educativo pythonlib.ru para crear tus propias utilidades CLI.



Instalación y uso básico



Antes de comenzar, asegúrate de tener Node.js instalado (versión 12 o superior). La instalación de Commander.js se realiza a través de npm:



npm install commander


Después de la instalación, crea un archivo cli.js y conecta la biblioteca. Veamos un ejemplo muy simple: una aplicación que muestra "Hello, World!" y recibe el nombre del usuario.



#!/usr/bin/env nodeconst { Command } = require('commander');const program = new Command();

program .name('greet') .description('Muestra un saludo') .version('1.0.0');

program .command('hello') .description('Saluda al usuario') .argument('<name>', 'Nombre del usuario') .action((name) => { console.log(`¡Hola, ${name}! Bienvenido a Commander.js.`); });

program.parse(process.argv);


Ahora ejecuta el script:



node cli.js hello Juan


Verás: ¡Hola, Juan! Bienvenido a Commander.js.



Funcionalidades principales de Commander.js



Commander.js proporciona un rico conjunto de funciones para crear aplicaciones CLI profesionales. Veámoslas en detalle.



1. Comandos y subcomandos

Puedes crear una cantidad ilimitada de comandos (por ejemplo, init, build, deploy) y anidarlos unos dentro de otros. Esto es especialmente útil para herramientas complejas, como gestores de paquetes o empaquetadores de proyectos.



program  .command('init')  .description('Inicializa un nuevo proyecto')  .option('-t, --template <type>', 'Plantilla del proyecto (basic, advanced)')  .action((options) => {    console.log(`Creando proyecto con la plantilla: ${options.template || 'basic'}`);  });


2. Opciones (flags)

Las opciones permiten al usuario pasar parámetros adicionales. Commander.js soporta flags cortos (-v) y largos (--verbose), así como valores obligatorios y opcionales.



program  .option('-d, --debug', 'Activar modo de depuración')  .option('-p, --port <number>', 'Puerto del servidor', '3000') // valor por defecto  .parse(process.argv);

if (program.opts().debug) { console.log('Depuración activada');}


3. Argumentos de comandos

Los argumentos son parámetros posicionales que el usuario pasa después del comando. Pueden ser obligatorios (<name>) u opcionales ([name]).



program  .command('copy <source> [destination]')  .description('Copia un archivo de source a destination')  .action((source, destination) => {    console.log(`Copiando de ${source} a ${destination || 'la carpeta actual'}`);  });


4. Ayuda automática y versionado

Commander.js genera automáticamente la ayuda al usar el flag --help o

Recommendations