Feat: Simplifica o processo de inicialização do ambiente de desenvolvimento#142
Conversation
|
View your CI Pipeline Execution ↗ for commit 3cea303
☁️ Nx Cloud last updated this comment at |
|
poxa, desculpe pela demora na resposta @LeonardoTosinPR e muito obrigado pela contribuição, esse processo realmente precisa de melhorias. Note O desenvolvedor precisa executar dois comandos em terminais separados e na ordem correta: os 2 terminais não são necessários, o parâmetro Caution
você mencionou: Tip O Verifiquei e na documentação não tem o mongodb no comando. Important Caso o docker-compose.yml não seja atualizado, pode vir a ser a causa do mesmo problema no futuro, mas, caso fique somente o mongodb, a doc poderia continuar da forma que está. Quanto a ordem correta, está correto, antes de iniciar o desenvolvimento com Ainda que o service mongodb já esteja em execução e o LGTM 👍 |
| **No Windows (PowerShell):** | ||
|
|
||
| ```powershell | ||
| Copy-Item .env-example .env |
There was a problem hiding this comment.
não consigo testar este, mas confio, simbora
guiseek
left a comment
There was a problem hiding this comment.
Muito obrigado pela contribuição! ❤️
Qual o problema que esta mudança resolve?
Atualmente, o processo para iniciar o ambiente de desenvolvimento é manual e propenso a erros. O desenvolvedor precisa executar dois comandos em terminais separados e na ordem correta:
docker compose mongodb up -d (ou pnpm docker:compose:only:mongo) para iniciar o banco de dados.
pnpm dev para iniciar o frontend e o backend (via Nx).
Essa abordagem pode levar a erros se o banco de dados não for iniciado antes das aplicações, além de ser um passo extra que prejudica a produtividade e a Developer Experience (DX).
Qual a solução proposta?
Para resolver isso, o script dev no arquivo package.json foi modificado para automatizar a inicialização do contêiner do MongoDB junto com as aplicações.
Com a alteração, ao executar pnpm dev:
O contêiner do banco de dados é iniciado primeiro.
Em seguida, as aplicações (frontend e backend via Nx) são executadas.
Isso unifica todo o processo em um único comando, tornando o setup mais rápido, simples e à prova de erros para todos os sistemas operacionais (Linux, Windows, macOS).
Alternativas consideradas
Foi considerado manter os comandos separados e apenas melhorar a documentação, mas a automação do processo através do package.json se mostrou uma solução muito mais robusta e alinhada com as boas práticas de DX.
Contexto da Implementação (package.json)
A mudança foi implementada no bloco scripts do package.json da seguinte forma:
"dev": "pnpm docker:compose:only:mongo && nx run-many -t serve --projects=server,devmx --configuration=development",Isso garante que a experiência de desenvolvimento seja mais fluida para todos os contribuidores do projeto.