Herramientas básicas para crear CLI en Node.js

Clase 24 de 26Curso de Node.js Avanzado

Resumen

¿Qué herramientas básicas necesitas para crear un CLI en Node.js?

Crear tu propia interfaz de línea de comandos (CLI) puede ser sencillo si conoces algunas herramientas básicas. En Node.js, puedes comenzar utilizando Minimist para manejar y analizar argumentos. Es ligera, fácil de implementar, pero ten en cuenta que para proyectos muy complejos podría no ser suficiente.

¿Qué diferencias hay entre librería y framework para CLI?

Debes decidir cuidadosamente entre una librería y un framework:

  • Librería: ofrece funcionalidades específicas y generalmente se integran fácilmente con otras utilidades.
  • Framework: impone una estructura más rígida y predefinida, proporcionando una solución completa que incluye definición de comandos, ayuda integrada y manejo avanzado.

Frameworks populares en Node.js:

  • Commander: facilita definición y manejo claro de comandos.
  • OCREEF: ofrece diversas utilidades avanzadas.

¿Cómo mejorar la interacción y apariencia de tu CLI?

Utilizar módulos adicionales puede mejorar significativamente la experiencia del usuario y presentación de tu CLI:

  • Inquirer: permite gestionar múltiples tipos de entradas como preguntas simples, selección múltiple y menús interactivos.
  • Loaders: dan retroalimentación visual durante procesos asíncronos, mejorando la claridad del estado actual del CLI.
  • Colorette: posibilita imprimir texto coloreado facilmente para destacar y diferenciar salidas en terminal.

¿Cómo integrar Gemini AI con tu CLI?

Para proveer funcionalidades avanzadas como asistentes inteligentes, tienes la opción de integrar Gemini AI utilizando el módulo @google/generative-ai. Debes seguir estos pasos:

  1. Obtener la API Key en AIStudio.google.com después de iniciar sesión con una cuenta Google.
  2. Instalar e importar el módulo respectivamente con:
pnpm add @google/generative-ai
  1. Validar la existencia de la variable de entorno Gemini_API_KEY en tu script Node.js.
  2. Definir claramente el System Prompt para orientar la interacción de la inteligencia artificial.

Un ejemplo básico para iniciar el modelo Gemini AI:

const { GoogleGenerativeAI } = require('@google/generative-ai');
const systemPrompt = "Soy un profesor de Platzi, experto en Node.js y JavaScript, y solo puedo responder preguntas sobre estos temas.";
const ai = new GoogleGenerativeAI(process.env.Gemini_API_KEY);
const model = ai.getGenerativeModel({
  model: 'gemini-1.5-flash',
  systemInstruction: systemPrompt,
});

De esta manera, tienes armado el esqueleto básico de un CLI eficiente, dinámico y altamente interactivo utilizando herramientas accesibles y potentes en Node.js.