Frameworks CLI para TypeScript: visão geral completa e exemplos de uso

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Frameworks CLI para TypeScript: criando aplicações de console poderosas



O desenvolvimento moderno com TypeScript é impensável sem a criação de ferramentas de linha de comando (CLI). Seja um construtor de projetos, um gerador de código ou um utilitário de automação — todo desenvolvedor já pensou pelo menos uma vez em escrever seu próprio programa de console. Neste artigo, analisaremos detalhadamente os melhores frameworks CLI para TypeScript, suas características e forneceremos exemplos práticos de código.



Para que serve um framework CLI?



Escrever uma CLI "do zero" não é apenas processar argumentos de linha de comando, mas também gerenciar subcomandos, validar entrada, saída colorida e dicas interativas. O framework assume o trabalho rotineiro, permitindo que você se concentre na lógica de negócios. O TypeScript adiciona tipagem estrita, o que é especialmente valioso no desenvolvimento de aplicações de console complexas.



Top 4 frameworks CLI para TypeScript



1. Commander.js



O framework mais popular (mais de 30 milhões de downloads por semana). Ideal para criar CLIs complexas de vários níveis com subcomandos, opções e geração automática de ajuda.



Instalação:

npm install commander


Exemplo de aplicação básica:

import { Command } from 'commander';

const program = new Command();

program .name('greet') .description('CLI para saudação') .version('1.0.0');

program .command('hello') .argument('<name>', 'nome do usuário') .option('-l, --lang <lang>', 'idioma da saudação', 'pt') .action((name, options) => { const greetings: Record<string, string> = { pt: 'Olá', en: 'Hello', de: 'Hallo' }; const greeting = greetings[options.lang] || greetings.pt; console.log(`${greeting}, ${name}!`); });

program.parse();


Execução:

npx ts-node index.ts hello João --lang en# Saída: Hello, João!


2. Inquirer.js



Biblioteca para criar prompts interativos no terminal. Permite fazer perguntas, selecionar opções, inserir senhas e muito mais. Combina perfeitamente com o Commander.



Instalação:

npm install inquirer @types/inquirer


Exemplo de enquete interativa:

import inquirer from 'inquirer';

interface Answers { name: string; role: string; experience: number;}

async function main() { const answers: Answers = await inquirer.prompt([ { type: 'input', name: 'name', message: 'Qual é o seu nome?', validate: (input: string) => input.length > 0 || 'O nome não pode estar vazio' }, { type: 'list', name: 'role', message: 'Qual é a sua função?', choices: ['Frontend', 'Backend', 'Fullstack', 'DevOps'] }, { type: 'number', name: 'experience', message: 'Anos de experiência?', default: 1 } ]);

console.log(`✅ ${answers.name}, você é ${answers.role} com ${answers.experience} anos de experiência.`);}

main();


3. Clack



Framework moderno dos criadores do Astro. Destaca-se pela API minimalista, animações bonitas e suporte nativo a TypeScript. Ideal para prototipagem rápida.



Instalação:

npm install @clack/prompts


Exemplo com seleção de cor:

import * as clack from '@clack/prompts';

async function main() { clack.intro('Seleção de cor');

const color = await clack.select({ message: 'Escolha sua cor favorita:', options: [ { value: 'red', label: 'Vermelho' }, { value: 'green', label: 'Verde' }, { value: 'blue', label: 'Azul' } ] });

clack.note(`Você escolheu: ${color}`); clack.outro('Obrigado pela escolha!');}

main();


4. Yargs



Poderoso parser de argumentos

Recommendations