jemluz / ds-ignite-call

https://jemluz.github.io/ds-ignite-call/
1 stars 0 forks source link

A base de um design system #1

Open jemluz opened 4 months ago

jemluz commented 4 months ago

Monorepos no npm

Dentro de um monorepo npm, você pode ter vários pacotes (ou "packages") relacionados que são mantidos juntos. Esses pacotes podem ser módulos individuais, bibliotecas compartilhadas, aplicativos ou qualquer outra unidade de código que você deseja gerenciar.

Há várias razões pelas quais alguém optaria por usar um monorepo no npm:

Gerenciamento simplificado:

Com todos os pacotes em um só lugar, é mais fácil gerenciar dependências compartilhadas e coordenar mudanças entre eles.

Compartilhamento de código:

Você pode compartilhar facilmente código entre os pacotes, evitando duplicação e mantendo a consistência.

Consistência e padronização:

Manter todos os pacotes juntos pode ajudar a garantir que eles sigam os mesmos padrões de codificação, estilo e estrutura.

Build e CI/CD unificados:

Com um monorepo, você pode configurar um processo de build e integração contínua/entrega contínua (CI/CD) unificado para todos os pacotes, facilitando a automação e reduzindo a sobrecarga de gerenciamento.

Versionamento centralizado:

Todos os pacotes compartilham o mesmo número de versão, facilitando o controle das versões e garantindo que todas as partes do código estejam em sincronia.

No entanto, um monorepo também pode introduzir desafios, como gerenciamento de escala, tempos de compilação mais longos e maior complexidade para novos membros da equipe. Portanto, é importante avaliar as necessidades específicas do projeto antes de decidir se um monorepo é a melhor opção.

jemluz commented 4 months ago

Lidando com monorepo

Ao criar um monorepo, você pode gerenciar diferentes pacotes relacionados através de um package.json principal, isso vai lhe poupar instalações individuais, remoções e etc

Se eu estou criando um monorepo que visa ser usado em conjunto com alguma tecnologia, como react por exemplo, eu devo instalar essa tecnologia como dependencia.

Pq se o usuário final do meu monorepo já irá utilizar react, a instalação dele como dependencia irá me exonomizar espaço. Deixe que o usuário final seja responsável pela instalação total, e não o seu monorepo.