Convidamos você a participar no desenvolvimento do Moleculer. Este documento ajuda ao longo do processo.
Antes de começar
Siga o estilo de codificação:
- Use tabulação com tamanho 4 para indentação.
- Sempre use o modo estrito & ponto e vírgula.
- Use aspas duplas em vez de aspas simples.
Contribuição nos módulos principais
Siga este fluxo se você quiser modificar os módulos principais.
Workflow
Faça o fork do repositório moleculerjs/moleculer.
Clone o repositório para o seu computador e instale dependências.
$ git clone https://github.com/<username>/moleculer.git
$ cd moleculer
$ npm installInicie Moleculer no modo de desenvolvimento
$ npm run dev
ou em modo de teste contínuo
$ npm run ci
Corrija o bug ou adicione um novo recurso.
Execute testes & verifique o resultado.
$ npm test
Se você adicionou novos recursos, por favor, adicione novos casos de teste relevantes! Nosso objetivo é a cobertura 100%.
Seu pull request somente será implementado quando os testes passem e cubram todo o código. Não esqueça de executar testes antes do envio.
Execute o commit & push da branch.
Crie um pull request e descreva a mudança.
Se você mudou alguma API, atualize a documentação também.
Contribuição para criar um novo módulo Moleculer
Siga este fluxo se quiser criar um novo módulo para o Moleculer
Workflow
Instale a ferramenta de linha de comando.
$ npm install moleculer-cli -g
Crie um novo módulo (chamado
de moleculer-awesome
) a partir de um template padrão.$ moleculer init module moleculer-awesome
Edite
src/index.js
e implemente a lógica.Em desenvolvimento, use o modo
dev
(inicia seu módulo comexample/simple/index.js
)$ npm run dev
ou em modo de teste contínuo
$ npm run ci
Crie testes em
test/unit/index.spec.js
& cubra completamente o código.$ npm test
Se isso for feito e você acha que será útil para outros usuários, conte pra nós!
Reportando problemas
Quando você encontrar alguns problemas ao usar Moleculer, você pode encontrar soluções no FAQ ou nos perguntar no Discord ou no StackOverflow. Se você não consegue encontrar a resposta, por favor, reporte-o em Problemas no GitHub.
Muito obrigado!