Este CLI foi desenvolvido para automatizar a configuração inicial do ambiente de desenvolvimento. Ele simplifica o processo de instalação de ferramentas essenciais, como o NVM (Node Version Manager) e versões específicas do Node.js, agilizando o onboarding e evitando erros de configuração manual.
O objetivo principal do CLI é facilitar e padronizar a configuração do ambiente para desenvolvedores. Ele garante que todos tenham as mesmas versões de ferramentas e dependências, o que reduz problemas de compatibilidade entre ambientes.
-
init-dev: Executa uma série de etapas para configurar o ambiente inicial de desenvolvimento, como instalação do NVM e das versões do Node.js especificadas. -
install-nvm: Instala o NVM (Node Version Manager) no sistema, se ele não estiver instalado. -
install-node: Instala uma ou mais versões específicas do Node.js usando o NVM, garantindo que os desenvolvedores tenham as versões corretas do Node.js para o projeto.
dev-setup/
├── cli.js # Arquivo principal do CLI
├── commands/ # Diretório de comandos
│ ├── init-dev.js # Comando que executa os plugins para configuração inicial
├── plugins/ # Diretório de plugins de tarefas
│ ├── install-nvm.js # Plugin para instalar o NVM
│ ├── install-node.js # Plugin para instalar Node.js
├── plugins.json # Configuração dos plugins e comandos
└── package.json # Configuração do projeto Node.js
cli.js: Arquivo principal que gerencia os comandos e plugins.commands/: Pasta contendo cada comando principal como arquivos individuais (init-dev.js).plugins/: Pasta onde cada tarefa individual, como instalar o NVM ou uma versão do Node.js, é modularizada em plugins.plugins.json: Arquivo de configuração que especifica quais plugins devem ser executados por cada comando, comoinit-dev.package.json: Configura o projeto como um pacote Node.js e permite a instalação global do CLI.
- Node.js e NPM devem estar instalados.
-
Clone o Repositório:
git clone <URL-do-repositório>cd nome-do-projeto -
Instale o CLI Globalmente:
npm install -g . -
Verifique a Instalação:
dev-setup --help
Executa todas as etapas necessárias para configurar o ambiente de desenvolvimento:
dev-setup init-dev
Este comando:
- Instala o NVM, caso não esteja instalado.
- Instala as versões do Node.js configuradas no
plugins.json.
Instala o NVM (Node Version Manager) separadamente, caso ainda não esteja instalado:
dev-setup install-nvm
Instala uma ou mais versões específicas do Node.js:
dev-setup install-node 14.17.0 16.13.0
O plugins.json define quais plugins devem ser executados para cada comando. Exemplo:
{
"commands": {
"init-dev": [
"install-nvm",
{
"name": "install-node",
"versions": ["14.17.0", "16.13.0", "18.0.0"]
}
]
}
}
init-dev: Configura o ambiente para desenvolvimento, incluindo a instalação do
NVM e as versões do Node.js listadas.
-
Carregamento de Comandos:
- O
cli.jscarrega automaticamente todos os comandos definidos na pastacommands/.
- O
-
Execução de Plugins:
- Cada comando lê o
plugins.jsone carrega os plugins relevantes. - Por exemplo,
init-devcarrega e executainstall-nvmeinstall-nodecom as versões especificadas.
- Cada comando lê o
-
Modularidade:
- Cada tarefa é modularizada em um plugin, tornando o CLI extensível e fácil de manter.
-
Configuração Completa do Ambiente:
dev-setup init-dev -
Instalar Apenas o NVM:
dev-setup install-nvm -
Instalar Múltiplas Versões do Node.js:
dev-setup install-node 14.17.0 16.13.0
- Automatização: Reduz o tempo e os erros na configuração de ambiente.
- Consistência: Garante que todos os desenvolvedores tenham o ambiente configurado de maneira uniforme.
- Modularidade: Fácil de expandir e personalizar com novos plugins.
- Suporte para outras ferramentas ou configurações de ambiente.
- Adição de novos comandos para outras fases de desenvolvimento ou integração contínua.