Por que você provavelmente desejará usar mais de um gerenciador de pacotes de nós
Um dos melhores recursos do Node são os gerenciadores de pacotes. Há muitas maneiras diferentes de instalar e gerenciar pacotes de nós. Aqui, veremos os prós e os contras de usar um gerenciador de pacotes ou usar mais de um gerenciador de pacotes e algumas das melhores maneiras de usá-los juntos.
O que é um gerenciador de pacotes, você pergunta? Leia mais para descobrir.
O que são gerenciadores de pacotes?
No mundo do desenvolvimento de software, as dependências são o que você precisa para executar seu projeto. São como os ingredientes de uma receita: sem eles nada acontece.
Por exemplo, se você estiver escrevendo um aplicativo que usa JavaScript e deseja acessar algumas funções de uma biblioteca chamada jQuery (que muitos sites já usaram), o jQuery será uma de suas dependências. Você precisará instalá-lo para que, quando alguém visitar seu site, possa ver as animações ou interações legais que você criou com ele!
Os gerenciadores de pacotes ajudam a gerenciar esses relacionamentos entre projetos gerenciando dependências para nós, então não precisamos nos preocupar em baixá-los manualmente sempre que quisermos algo novo adicionado ou atualizado – eles também garantem que tudo funcione corretamente e funcione sem problemas depois de instalado (o que às vezes é mais fácil dizer do que fazer).
O nó vem pré-empacotado com um gerenciador de pacotes chamado NPM
O NPM é o gerenciador de pacotes padrão e, como tal, é integrado ao tempo de execução do nó. Você pode usar o NPM para instalar pacotes do GitHub ou do NPM diretamente. Você também pode publicar seus pacotes neste site para que outros possam instalá-los usando sua versão do NPM.
O NPM não é usado apenas para instalar pacotes; ele também lida com resolução de dependência e conflitos de versão entre duas ou mais bibliotecas ou módulos necessários na base de código do aplicativo.
Isso significa que, se houver várias versões de algo como o Express em execução em seu servidor a qualquer momento, o NPM garantirá que cada instância obtenha o que precisa sem entrar em conflito com outras instâncias que realizam trabalhos semelhantes – e tudo sem exigir que você faça nada especial além de simplesmente chamar require() em um objeto quando necessário!
O NPM é uma ferramenta incrivelmente poderosa e é fácil começar a usá-la. Mas se você é novo em Node e JavaScript, pode ser um desafio saber quais ferramentas estão disponíveis para seu uso e quais são as melhores para um determinado projeto.
O principal problema com o NPM é que ele é lento para instalar pacotes. Isso não é grande coisa se você estiver apenas executando um ou dois scripts ocasionais, mas pode ser incrivelmente frustrante se estiver tentando criar um aplicativo inteiro que usa dezenas de bibliotecas e ferramentas diferentes.
Yarn e PNPM são mais rápidos que o NPM
O Yarn é uma alternativa segura e confiável ao NPM que usa um arquivo de bloqueio para evitar substituições acidentais e garante que suas dependências sejam resolvidas corretamente ao instalar pacotes.
Ele também tem um tempo de instalação mais rápido que o NPM, o que o torna especialmente útil se você estiver trabalhando com grandes projetos que possuem muitos módulos com muitas dependências.
O PNPM é uma alternativa ao Yarn e ao NPM, mas ainda não é tão popular porque não possui alguns dos recursos encontrados em nenhum deles (como arquivos de bloqueio). No entanto, seus desenvolvedores afirmam que o PNPM pode instalar pacotes até quatro vezes mais rápido que o Yarn ou o NPM, graças à sua natureza leve; isso significa menos uso de espaço em disco no seu computador também!
Se você estiver construindo um projeto que requer apenas um punhado de dependências, Yarn ou NPM provavelmente serão suficientes. No entanto, se você estiver trabalhando com grandes projetos com muitos módulos e dependências, o PNPM pode ser a melhor opção para você.
Vantagens de usar vários gerenciadores de pacotes
Um único gerenciador de pacotes pode manipular apenas uma versão de qualquer biblioteca por vez. Se você quiser usar duas versões diferentes da mesma biblioteca para outros projetos ou em ambientes diferentes (por exemplo, produção versus desenvolvimento), precisará de dois pacotes separados instalados em seu sistema.
Isso pode levar a conflitos se ambos os pacotes tentarem atualizar suas versões da mesma dependência ao mesmo tempo. Usar vários gerenciadores de pacotes significa que você tem mais controle sobre quais dependências são instaladas e onde, o que ajuda a evitar esses tipos de conflitos.
Outro benefício é que, ao usar vários gerenciadores de pacotes, cada um fornecerá seu próprio conjunto exclusivo de recursos. Alguns podem ser mais rápidos que outros; alguns podem ter melhores recursos de gerenciamento de dependência; outros podem ser mais adequados para desenvolver aplicativos dentro de certas estruturas como ReactJS ou VueJS etc…
Por fim, o uso de vários gerenciadores de pacotes pode ajudar a melhorar a produtividade do desenvolvedor, reduzindo o tempo gasto procurando e instalando dependências. Isso ocorre porque cada gerenciador de pacotes será projetado com um conjunto específico de casos de uso em mente (por exemplo, velocidade x segurança x gerenciamento de dependências etc.).
Use vários gerenciadores de pacotes instalando-os globalmente
Usando a linha de comando, você pode especificar qual gerenciador de pacotes deseja usar para um projeto específico. Configure vários gerenciadores de pacotes em sua máquina:
- O NPM vem pré-empacotado com o Node. Isso permitirá que você instale outros pacotes (e gerenciadores de pacotes) a partir da linha de comando e gerencie dependências em todos os seus projetos com o NPM. Também é útil se você deseja executar scripts NPM em um navegador (por exemplo, Webpack), porque os navegadores não vêm com o NPM pré-instalado!
- Instale o Yarn globalmente também usando o NPM. Essa é outra opção popular para gerenciar dependências em projetos JavaScript; tem algumas vantagens sobre o NPM que podem torná-lo preferível para certos tipos de projetos ou equipes
- Finalmente, instale o PNPM. Este gerenciador de pacotes é um fork do NPM projetado para ser mais rápido e estável. Ele também possui alguns recursos adicionais que podem ser úteis para alguns tipos de projetos, como suporte para dependências do GitHub.
Observe que uma instalação global significa que o pacote selecionado estará disponível para todo o seu sistema (você pode acessar o programa em qualquer lugar por meio da linha de comando), enquanto uma instalação local só pode ser acessada pelo diretório de trabalho atual.
Exemplos do mundo real de como você pode usar vários gerenciadores de pacotes
Confira esses usos:
1. Yarn e NPM podem ser usados juntos (por exemplo, create-react-app)
Isso é útil quando você deseja aproveitar a velocidade e a eficiência do Yarn e, ao mesmo tempo, manter a compatibilidade com os pacotes NPM. Se você precisar da versão mais recente de uma biblioteca que ainda não foi atualizada para compatibilidade com o Yarn, ou se houver outro motivo pelo qual sua equipe prefere continuar com o NPM, apesar de sua velocidade mais lenta ou conjunto de recursos limitado, isso pode funcionar bem para o seu projeto. Também ajuda a evitar duas árvores de dependência separadas em sua configuração de repositório mono!
2. Usando Yarn para pacotes globais e PNPM para instalações locais
Embora o PNPM seja o gerenciador de pacotes mais rápido, pode ser complicado usá-lo para pacotes instalados globalmente. Isso ocorre porque ele usa uma estrutura de arquivo diferente que pode causar problemas de compatibilidade com programas como o Visual Studio Code. É aqui que entra o Yarn. Você pode usá-lo para seus pacotes instalados globalmente e o PNPM para instalações locais. Essa solução é uma boa maneira de obter os benefícios de ambos os gerenciadores de pacotes sem precisar alterar muito o fluxo de trabalho. Com esta configuração – se você quiser ficar louco – você pode remover completamente o NPM do seu sistema (mas é sempre bom ter o NPM como backup).
3. Usando PNPM com NPM como alternativa
Essa é uma boa opção a ser considerada caso você queira usar o PNPM, mas não deseja que todos os seus desenvolvedores tenham que aprender uma nova ferramenta ainda. Isso permite que eles continuem trabalhando com o NPM até que se sintam confortáveis com o PNPM e precisem dele para seu trabalho.
Usar vários gerenciadores de pacotes torna as coisas mais fáceis
Você pode usar vários gerenciadores de pacotes. Você pode instalá-los globalmente ou localmente, e se quiser especificar qual gerenciador de pacotes deve ser usado para um projeto específico, basta usar a linha de comando!
Se você deseja instalar vários gerenciadores de pacotes em seu sistema, certifique-se de estar usando a mesma versão do Node.js.
Concluindo, achamos que você deve usar mais de um gerenciador de pacotes. É uma ótima maneira de começar a usar o Node e também aprender algumas novas ferramentas se você já estiver familiarizado com o NPM. Se você ainda não tem o Node instalado, a configuração é fácil no Windows.
Deixe um comentário