Gerenciar as dependências requeridas por uma aplicação, principalmente quando ela depende de inúmeras bibliotecas externas pode ser algo muito custoso e trabalhoso. Em um passado remoto, quando não havia a figura dos gerenciadores de pacotes, ou até mesmo antes destes se popularizarem, era corriqueira a tarefa de acessar o site da biblioteca, baixar, extrair o zip e importa-la para dentro do projeto.

Mas qual o problema desta abordagem? Vamos listar os quatro principais:

O que é um gerenciador de pacotes?

É uma ferramenta ou conjunto de ferramentas que tem por objetivo automatizar processos de download, instalação, atualização, otimização e remoção de pacotes.

Em outras palavras, é uma ferramenta que pode ser utilizada de modo a simplificar e agilizar os passos já citados, ou seja, ao invés de termos que acessar o site de determinado desenvolvedor, baixar a ferramenta ou biblioteca XPTO, extrair os arquivos, instalar e configurar, o gerenciador de pacotes abstrair todos estes passos, dispensando qualquer interação manual de nossa parte.

Repositório

Existe um repositório central onde pacotes do ecossistema do Node.js podem ser registrados e disponibilizado para download de forma privada ou pública. Este repositório central ficou conhecido pelo mesmo nome do gerenciador de pacotes nativo NPM. Utilize a barra de busca para procurar repositório via uso de palavras chaves.

<aside> 🔗 Link official: https://www.npmjs.com

</aside>

NPM vs YARN

O YARN foi desenvolvido pelo Facebook e tinha como premissa corrigir alguns pontos fracos presente no gerenciador nativo (NPM), tais como:

Dos pontos citados acima, o único grande peso que ainda recai sobre os ombros do NPM é o fato de que o YARN consegue ser bem mais rápido (performático) nas operações de instalação, atualização e remoção de pacotes, porém, em geral isso não trará nenhum impacto negativo para o projeto, ainda mais quando estamos falando de projetos pequenos.

<aside> 🔗 Sugestão de leitura complementar com testes de performance e detalhamento das diferenças: https://medium.com/@j.dumadag718/yarn-vs-npm-b2d58289fb9b

</aside>

NPM e YARN na prática

Não precisamos instalar o NPM uma vez que este vem incorporado de forma nativa ao Node. Já o YARN possui um processo de instalação extremamente simples, objetivo e bem documentado.