Javascript

Yarn: Um novo gerenciador de dependências para JavaScript

Yarn nasceu para ser uma opção rápida e segura de se gerenciar dependências em JavaScript.

há 7 anos 6 meses

Formação Desenvolvedor JavaScript
Conheça a formação em detalhes

Trabalhar com JavaScript hoje em dia sem utilizar um gerenciador de dependências (ou gerenciador de pacotes, se preferir) é quase impensável, apesar de possível.

A maioria das principais linguagens do mercado possuem algum gerenciador de dependências, vamos a alguns exemplos:

E assim por diante. Agora, como fica o JavaScript? Bom, não fica pra trás, garanto! O principal e mais utilizado gerenciador de dependências do momento para JavaScript é o NPM (Node Package Manager).

Comparação entre os principais gerenciadores de dependência para front-end (não focando só em JavaScript): https://github.com/wilmoore/frontend-packagers

O NPM cresceu de forma exponencial nos últimos anos e, por mais que a sua equipe de arquitetura tenha colocado os seus melhores esforços em cima de atualizações e melhorias, a maior reclamação dos desenvolvedores é de que ele é extremamente lento e possui alguns problemas para gerenciar as requisições na rede.

Se você gerencia uma ou outra dependência talvez não sinta tanto, agora, desenvolvedores de aplicações SPA como os que utilizam Ember.js com Ember-CLI ou AngularJS, React etc, certamente lidam com esse gargalho da falta de performance diariamente.

Visando resolver esse e outros problemas surgiu o Yarn, o mais novo gerenciador de dependências para JavaScript.

O Yarn foi anunciado hoje!

JavaScript Básico
Curso JavaScript Básico
Conhecer o curso

Yarn

Yarn

Ele foi desenvolvido e está sendo mantido por um grupo de desenvolvedores do Babel JS, Facebook, Ember.js entre outros. O Yarn não veio para substituir o NPM. De forma alguma. Veio pra coexistir. Ser mais uma opção.

A melhor parte: Yarn é totalmente compatível com os registros do NPM. Sim, isso quer dizer que, se você já tem um grande projeto e usa NPM, tudo bem, você pode começar agora mesmo a utilizar o Yarn em substituição sem precisar alterar o seu package.json, por exemplo.

Dentre as principais features do Yarn, destacamos:

  • Se você já instalou um pacote anteriormente, isso fica cacheado e você poderá instalá-lo posteriormente mesmo sem conexão à internet.
  • As dependências serão instaladas da mesma forma e ordem em qualquer máquina.
  • Se uma requisição falhar, ela não fará com que toda a instalação falhe. Ela é refeita.
  • A rede é utilizada de forma inteligente, as requisições são enfileiradas para se obter a melhor performance possível.

Quer saber mais? Veja aqui o post de apresentação da ferramenta feito pelo pessoal do Facebook:

https://code.facebook.com/posts/1840075619545360

Instalando e utilizando o Yarn

Se você já tem o NPM instalado globalmente no seu ambiente, tudo o que você precisa fazer é executar:

npm install -g yarnpkg

Para instalar as dependências do package.json de um projeto, tudo o que você precisa fazer é executar:

yarn

Esse comando é equivalente ao npm install. Isso é tudo! Certamente você notará uma grande diferença.

Nós, aqui do TreinaWeb, tivemos uma melhora de performance de ao menos 500% na instalação das dependências de um projeto nosso.

yarn.lock

Uma das razões para a alta performance (além da eficiência no uso dos recursos da rede) é o fato de que o Yarn gera um lock file muito decente após a instalação (yarn.lock) que registra todas as dependências instaladas no projeto e suas exatas versões, de tal forma que, se a pasta node_modules for removida, tendo o arquivo yarn.lock disponível, ao executar yarn (para instalar as dependências) ele não vai precisar ler o package.json novamente e montar toda uma árvore das dependências, pois isso já está devidamente detalhado no yarn.lock.

Se você trabalha com PHP vai notar a semelhança. O Composer (principal gerenciador de dependências para PHP) gera um arquivo composer.lock nas instalações.


Update: 12/10/2016

O repositório do Yarn passou de poucas estrelas no Github para quase 10k em menos de 1 dia:

https://github.com/yarnpkg/yarn

Muita gente já está usando e comemorando. Taylor Otwell criador do Laravel postou entusiasmado:

--------

Qual usar?

Bom, diante das excelentes opções que temos (NPM, Yarn etc), cabe a você, desenvolvedor, ver o que melhor se encaixa nas suas necessidades.

Até a próxima!

Nginx - Criação de sites
Curso Nginx - Criação de sites
Conhecer o curso

Autor(a) do artigo

Redação Treinaweb
Redação Treinaweb

Todos os artigos

Artigos relacionados Ver todos