image

Bootcamps ilimitados + curso de inglês para sempre

84
%OFF
Salustiano Muniz
Salustiano Muniz10/09/2025 17:06
Compartir
Microsoft - Azure AZ-900Recomendado para tiMicrosoft - Azure AZ-900

Automatizando a Criação de componentes React: Como Desenvolvi um Gerador para Otimizar meu Trabalho

  • #Node.js
  • #Node Package Manager (NPM)
  • #React
  • #JavaScript

image

Introdução: O Problema da Repetição no Desenvolvimento React

Como desenvolvedores React, quantas vezes já criamos a mesma estrutura básica de componentes? Para cada novo componente, repetimos o processo: criar pasta, arquivo principal, arquivo de estilos, arquivo de funções utilitárias... Essa repetição não só consome tempo precioso como também abre espaço para inconsistências.

Durante meu percurso no Bootcamp meutudo - Mobile Developer promovido pela DIO, percebi que essa repetição estava me atrasando. Foi então que decidi criar uma solução: o react-basic-component-generator.

O Que é o React Basic Component Generator?

react-basic-component-generator é um pacote CLI (Command Line Interface) que automatiza a criação de componentes React. Com um simples comando, você gera toda a estrutura necessária para um componente, incluindo:

  • Arquivo principal do componente
  • Arquivo de estilos (CSS Modules ou Styled Components)
  • Arquivo de funções utilitárias
  • Estrutura de pastas organizada

Motivação: Por Que Criar Mais Um Gerador?

1. Aprendizado Contínuo

No mundo do desenvolvimento, a prática leva à perfeição. Criar este pacote foi uma oportunidade de aprofundar meus conhecimentos em Node.js, manipulação de arquivos e criação de ferramentas CLI.

2. Otimização do Fluxo de Trabalho

Durante o bootcamp da DIO, percebi que gastava muito tempo repetindo estruturas básicas. Automatizar esse processo me permitiu focar no que realmente importa: a lógica de negócio.

3. Personalização

Muitos geradores existentes são complexos ou não se adequavam ao meu fluxo específico. Criar minha própria solução me permitiu moldá-la perfeitamente às minhas necessidades.

Funcionalidades Principais

1. Geração Rápida de Componentes


# Componente com CSS Modules

npx react-basic-component-generator MeuComponente



# Componente com Styled Components

npx react-basic-component-generator MeuComponente styled

2. Estrutura Consistente

O gerador cria sempre a mesma estrutura, garantindo consistência em todo o projeto:


components/

└── MeuComponente/

├── index.jsx

├── styles.module.css (ou styles.js)

└── functions.js

3. Suporte a Múltiplas Abordagens de Estilização

  • CSS Modules: A abordagem padrão, ideal para quem prefere CSS tradicional com escopo local
  • Styled Components: Para projetos que utilizam CSS-in-JS

4. Templates Customizáveis

Os templates são armazenados em arquivos separados, permitindo fácil customização conforme as necessidades do projeto.

Como Implementei: O Processo de Desenvolvimento

1. Estrutura do Projeto

Comecei definindo a estrutura básica do pacote:


react-basic-component-generator/

├── templates/

│  ├── index.jsx

│  ├── styles.module.css

│  ├── functions.js

│  └── styledComponents/

│    ├── index.jsx

│    └── styles.js

├── generate-component.js

└── package.json

2. Lógica Principal

O coração do gerador está na manipulação de arquivos usando o módulo fs do Node.js:


const createComponent = (componentName, useStyledComponents) => {

 const componentPath = `./components/${componentName}`;



 // Criar diretório

 if (!fs.existsSync(componentPath)) {

fs.mkdirSync(componentPath, { recursive: true });

 }



 // Ler e processar templates

 const indexTemplate = fs.readFileSync(

useStyledComponents 

 ? './templates/styledComponents/index.jsx' 

 : './templates/index.jsx', 

'utf-8'

 );



 // Substituir placeholders

 const processedTemplate = indexTemplate.replace(/changeMe/g, componentName);



 // Escrever arquivo

 fs.writeFileSync(`${componentPath}/index.jsx`, processedTemplate);

};

3. Tratamento de Erros

Implementei validações para evitar sobrescrita acidental e fornecer feedback útil:


if (fs.existsSync(componentPath)) {

 console.error('❌ Componente já existe!');

 process.exit(1);

}

4. Interface de Linha de Comando

Tornei o pacote executável diretamente via npx, sem necessidade de instalação global:


{

 "bin": {

"react-basic-component-generator": "./generate-component.js"

 }

}

Como Utilizar no Seu Projeto

Instalação e Uso


# Uso direto com npx (recomendado)

npx react-basic-component-generator Button



# Com Styled Components

npx react-basic-component-generator Card styled



# Ou instalando globalmente

npm install -g react-basic-component-generator

generate-component Modal

Integração com Scripts do package.json


{

 "scripts": {

"generate": "react-basic-component-generator",

"generate:styled": "react-basic-component-generator styled"

 }

}

Benefícios para o Desenvolvimento

1. Economia de Tempo

Estima-se que o gerador economize aproximadamente 1-2 minutos por componente. Em projetos grandes, isso se traduz em horas de desenvolvimento economizadas.

2. Consistência de Código

Todos os componentes seguem a mesma estrutura, facilitando a manutenção e onboarding de novos desenvolvedores.

3. Foco no que Importa

Menos tempo criando estruturas básicas, mais tempo desenvolvendo funcionalidades complexas.

Lições Aprendidas com o Bootcamp da DIO

O bootcamp meutudo - Mobile Developer da DIO foi fundamental para este projeto. As aulas sobre:

  • Estrutura de componentes React: Me deram a base para entender quais elementos são essenciais
  • Manipulação de arquivos com Node.js: Forneceram o conhecimento técnico para implementar a solução
  • Boas práticas de desenvolvimento: Me orientaram a criar um código limpo e maintainable

Próximos Passos e Melhorias Planejadas

Estou constantemente melhorando o pacote com base no feedback e nas necessidades que surgem:

  •  Adicionar suporte a TypeScript
  •  Implementar testes automatizados
  •  Adicionar opção para gerar testes unitários junto com o componente
  •  Criar modo interativo para customização avançada
  •  Adicionar suporte a diferentes estruturas de pastas

Conclusão: Por Que Automatizar Tarefas Repetitivas?

Criar o react-basic-component-generator foi mais do que um exercício técnico; foi uma prática de eficiência e melhoria contínua. No mundo do desenvolvimento, automatizar tarefas repetitivas não é preguiça - é inteligência.

Convido você a experimentar o pacote, contribuir com sugestões ou até mesmo criar sua própria versão. Às vezes, as soluções mais simples são as que trazem maior impacto para nosso dia a dia como desenvolvedores.

GitHub: https://github.com/stsmuniz/react-basic-component-generator

NPM: https://www.npmjs.com/package/react-basic-component-generator

Este projeto foi desenvolvido como parte da jornada de aprendizado no Bootcamp meutudo - Mobile Developer da DIO.

Compartir
Recomendado para ti
Akad - Fullstack Developer
Microsoft - Azure AZ-900
Ri Happy - Front-end do Zero #2
Comentarios (0)
Recomendado para tiMicrosoft - Azure AZ-900