Entre para a LISTA VIP da Black Friday

00

DIAS

00

HORAS

00

MIN

00

SEG

Clique para saber mais

NPM vs Yarn

NPM vs Yarn
Rafaella Ballerini
Rafaella Ballerini

Compartilhe

Introdução

Sabe quando você precisa desenvolver um projeto com JavaScript e reutilizar alguns códigos já prontos de pacotes e dependências, como aqueles arquivos na famosa pasta node modules? Então, NPM e Yarn são duas tecnologias responsáveis pelo gerenciamento e execução desses pacotes e dependências. Mas qual será a diferença entre cada um desses gerenciadores? Existe algum melhor que o outro? Você vai descobrir em breve aqui neste artigo!

Logomarca do gerenciador de pacote yarn a esquerda com as letras VS no centro e a logomarca do gerenciador de pacote NPM na direita. Banner da promoção da black friday, com os dizeres: A Black Friday Alura está chegando. Faça parte da Lista VIP, receba o maior desconto do ano em primeira mão e garanta bônus exclusivos. Quero ser VIP

Para que servem?

Como mencionado acima, ambos são gerenciadores de pacotes e dependências em projetos JavaScript. Mas como e por que isso acontece exatamente?

Em muitos projetos é comum utilizarmos alguns pacotes e dependências já existentes para facilitar o nosso desenvolvimento, seja em JavaScript ou qualquer outra linguagem. Um exemplo é o próprio React, uma biblioteca famosa utilizada quando queremos desenvolver páginas web componentizando a aplicação. Inclusive, se quiser saber mais sobre essa tecnologia, temos uma Formação React JS aqui na Alura!

Ainda utilizando como exemplo o React, se tivéssemos que atualizá-lo manualmente toda vez que surgisse algo novo, ou mesmo instalar cada uma das dependências necessárias que surgirem ao longo do desenvolvimento do projeto, nos daria muito trabalho e a chance de errarmos e esquecermos alguma coisa seria muito grande. Justamente por isso surgiram os gerenciadores de pacotes e dependências, que com apenas um comando já fazem isso tudo por nós.

Como é feito esse gerenciamento?

Tanto o NPM, quanto o Yarn utilizam um arquivo chamado package.json, onde são descritos os pacotes e dependências necessários para o projeto, com as suas versões. Para criar esse arquivo, é usado apenas o comando npm init ou yarn init.

Com isso, quando rodamos o comando npm install, no caso do NPM, ou yarn no caso do Yarn, já é atualizado e instalado tudo que for necessário para o projeto rodar corretamente.

Além disso, sempre que precisarmos instalar um novo pacote ou dependência durante o desenvolvimento do projeto, podemos fazer isso também apenas com uma linha de comando, com npm install <pacote> ou yarn add <pacote>.

Legal, agora entendi para que essas duas tecnologias servem e como elas funcionam, mas então qual seria a diferença de usar cada uma delas afinal?

NPM

Logomarca do gerenciador de pacote NPM.

Atualmente sendo o gerenciador de pacotes padrão do Node.JS, o NPM (Node Package Manager) é um projeto open source criado com o objetivo de facilitar a troca de códigos escritos em JavaScript.

Hoje ainda é o mais utilizado, justamente pois logo quando você instala o Node na máquina, ele já é instalado junto no seu sistema.

Mas o NPM não tem apenas um CLI (Command Line Interface) para você apenas executar comandos e gerenciar os pacotes e dependências. Ele também possui um site onde é possível encontrar sua documentação e todas as informações dos pacotes que deseja, além de um repositório onde fica armazenada uma base de dados JavaScript gigante e pública.

Porém, esse gerenciador começou a apresentar alguns problemas, como demora no tempo de instalação ou atualização, versões diferentes de dependências nas máquinas e até segurança. Assim então, surgiu o Yarn para solucionar isso tudo.

Yarn

Logomarca do gerenciador de pacote Yarn.

Criado pelo Facebook com a colaboração da Google, Exponent e Tilde, o Yarn é também open source e surgiu com o objetivo de ser mais rápido e seguro que o NPM.

Além disso, algo interessante sobre essa ferramenta é que possibilita a instalação de pacotes offline, por meio da criação de um cache em sua máquina, o que faz com que você futuramente nem precise estar com a rede conectada na internet para instalação de pacotes.

Diferenças na linha de comando

Aqui você pode perceber a semelhança entre as duas ferramentas na prática, mudando apenas uma palavra ou outra para fazer grande parte das configurações necessárias entre pacotes e dependências.

NPMYARNUtilização
npm inityarn initinicializar o gerenciador
npm install -pacote-yarn add -pacote-instalar um pacote no projeto
npm update -pacote-yarn upgrade -pacote-atualizar um pacote do projeto
npm remove -pacote-yarn remove -pacote-remover um pacote do projeto

Afinal, qual é melhor?

Por mais que o Yarn tenha surgido com o objetivo de solucionar todos os problemas encontrados com o NPM, esse último tem se atualizado cada dia mais, a ponto de sua diferença de performance e segurança com o Yarn estar cada vez menor.

Além disso, o NPM já vem instalado automaticamente com o Node.js, o que facilita muito sua utilização.

Sendo assim, ambas as tecnologias são muito utilizadas por toda comunidade JavaScript, devendo então você analisar o que é prioridade no seu projeto e quais as suas preferências.

Lembrando que (até o momento) ambos são compatíveis, o que significa que você pode, durante o desenvolvimento de um projeto, alterar entre essas duas ferramentas com as devidas configurações, se necessário.

Gostou do conteúdo e quer aprender mais sobre Javascript? Então conheça a Formação Front End e o Formação Node.js com Express e mergulhe nesses mares de front-end e back-end!

Rafaella Ballerini
Rafaella Ballerini

Desenvolvedora de software, instrutora e criadora de conteúdo. Possui um canal com mais de 240 mil pessoas inscritas, onde ensina sobre os mais diversos temas relacionados a programação e tecnologia, como HTML, CSS, Javascript, Git, Github... É instrutora front-end na plataforma da Alura e também na Imersão Dev, projeto que leva o ensino inicial de programação para todo o Brasil gratuitamente.

Veja outros artigos sobre Front-end