Por que você precisa de utilitários CLI em JavaScript?
Imagine: todos os dias você renomeia manualmente pastas de relatórios, converte JSON para CSV ou procura por arquivos duplicados. E se você pudesse escrever um pequeno programa que fizesse isso em um segundo com um comando no terminal? É exatamente para isso que servem os utilitários CLI em JavaScript.
Ao contrário de aplicações web completas, a CLI (Interface de Linha de Comando) é uma ferramenta leve, rápida e muito conveniente. Ela não precisa de navegador, funciona em qualquer plataforma e se integra facilmente a scripts de CI/CD. No PythonLib, frequentemente discutimos automação, e hoje vou mostrar como criar seu primeiro utilitário CLI em Node.js do zero. Você vai se surpreender com a simplicidade!
Neste artigo, percorreremos o caminho completo: da configuração do projeto à publicação do pacote pronto no npm. Você não terá apenas teoria, mas um código funcional que pode ser adaptado imediatamente para suas próprias tarefas.
O que é um utilitário CLI e por que JavaScript?
Um utilitário CLI é um programa que é executado a partir da linha de comando. Você digita my-tool --input file.txt — e ele executa a ação desejada. JavaScript é ideal para isso porque:
- Node.js está instalado em todos os servidores e em quase todos os PCs de desenvolvedores.
- Uma enorme quantidade de módulos prontos (npm) para trabalhar com arquivos, rede e formatos de dados.
- Simplicidade de escrita: não precisa compilar, basta um único arquivo.
- Multiplataforma: sua ferramenta funcionará no Windows, macOS e Linux.
Mesmo que você seja iniciante em Node.js, conseguirá. Começaremos com o mais simples — um script que exibe uma saudação.
Passo 1: Configuração do projeto para o utilitário CLI
Crie uma pasta para o seu projeto e inicialize o npm:
mkdir my-first-clicd my-first-clinpm init -yAgora abra o package.json. Este é o arquivo de configuração principal do seu futuro utilitário CLI em JavaScript. Adicione o campo "bin":
{ "name": "my-first-cli", "version": "1.0.0", "description": "Meu primeiro utilitário CLI", "bin": { "greet": "./index.js" }, "license": "MIT"}O campo "bin" é a mágica. Ele diz ao Node.js: "Quando o usuário digitar o comando greet, execute o arquivo index.js". Observe que o nome do comando (greet) pode ser qualquer um.
Agora crie o index.js com a primeira linha — o shebang. Isso é obrigatório para CLI:
#!/usr/bin/env node
console.log('Olá, mundo! Eu sou seu primeiro utilitário CLI!');O shebang #!/usr/bin/env node indica ao sistema que o script deve ser executado com Node.js. Sem ele, o comando não funcionará.
Passo 2: Tornando o utilitário executável e testando
Para executar seu utilitário CLI em JavaScript localmente, execute o comando:
npm linkEste comando cria um link global para o seu pacote. Agora, em qualquer terminal, você pode digitar:
greetE você verá: Olá, mundo! Eu sou seu primeiro utilitário CLI! Parabéns, você acabou de criar seu primeiro utilitário!
Passo 3: Análise de argumentos da linha de comando
Apenas exibir texto é entediante. Utilitários CLI de verdade aceitam argumentos. Vamos aprender a processá-los. O Node.js tem um array embutido process.argv, mas para projetos sérios é melhor usar o módulo commander ou yargs.
Vamos instalar o commander:
npm install commanderAgora reescreva o index.js:
#!/usr/bin/env node
const { Command } = require('commander');const program = new Command();
program .name