Confira a diferença entre Npm e Yarn

npm vs yarn

Npm e Yarn são responsáveis pelo gerenciamento de pacotes, sendo o Npm o gerenciador padrão do Node.js, enquanto o Yarn foi criado pelo Facebook.

É comum utilizarmos pacotes de dependência nos nossos projetos, como o famoso node_modules. Portanto, com um desses recursos podemos instalar um novo pacote, atualizar a versão, entre outras ações.

No geral, ambos possuem a mesma função, porém a forma de execução é diferente, deixando a comunidade de DEVs polarizada.

Por que criaram o Yarn?

O Yarn foi criado a partir de uma insatisfação com o Npm, pois ele apresentava alguns contratempos, dentre eles a demora em realizar alguma instalação ou atualização de segurança. 

Problemas esses que os criadores estão tentando resolver a cada nova versão do Npm. Com base nisso, o Facebook (Meta), juntamente com o Google e outras empresas, desenvolveram o Yarn para ser rápido, seguro e eficiente.

Qual a diferença?

A pessoa que utiliza Npm instala as dependências do node_modules fora de ordem. Isso significa que a estrutura de um diretório pode ser diferente de uma pessoa para outra. Assim, essa diferença pode causar a famosa frase “na minha máquina funciona”.

Com o Yarn, você estará recebendo o mesmo conteúdo da máquina de desenvolvimento, uma vez que ele bloqueia as dependências instaladas em versões específicas. 

Esse problema foi resolvido em versões Npm superiores a 5 com a introdução do package-lock.json (caso você utilize uma versão anterior, isso ainda será um problema).

O Yarn pode paralelizar, isso significa que faz a instalação apenas uma vez, resultando em um processo de instalação dos pacotes mais rápido, pois possui um cacheamento global de cada pacote instalado e, assim que você precisar instalar novamente, o Yarn irá buscar nesse cache, mudando apenas a versão. 

Nesse quesito, o Npm ainda não fez nenhuma atualização relevante a ponto de fazer instalações dos pacotes rapidamente.

O Npm vem instalado juntamente com o Node.js, facilitando a utilização e evitando instalações externas. Enquanto você precisaria instalar o Yarn para então utilizá-lo em seu projeto.

Comandos Npm vs Yarn

FuncionalidadesComando NpmComando Yarn
Inicializar o geradornpm inityarn init
Instalar todos os pacotes existentes em um projetonpm install ou npm iyarn add ouyarn
Instalar um pacote específiconpm install nomeDoPacoteyarn add nomeDoPacote
Atualizar um pacote específiconpm update nomeDoPacoteyarn update nomeDoPacote
Remover um pacote específiconpm remove nomeDoPacoteyarn remove nomeDoPacote

Conclusão

É fato que o Yarn possui diversas vantagens e a mais disseminada é a sua velocidade na instalação dos pacotes, porém o Npm vem reduzindo essas diferenças a cada atualização.

Existe um grande debate sobre qual é o melhor. Desse modo, há fortes defensores do Npm bem como do Yarn. Depende de você analisar e escolher o que melhor satisfaça as suas necessidades. Lembrando que é possível utilizar ambos em um projeto. 

Qual deles você prefere? Aproveite para visitar outros conteúdos do blog, como o artigo que traz dicas de como dominar o Git

Não se esqueça de se inscrever na Coodesh e conhecer nossas soluções em code assessment.

RH Cast

Como avaliar profissionais de tecnologia em processos seletivos?

Coodesh Talk: bem-estar e saúde mental no trabalho