HE:labs

Postado por Thiago Belem em 08/07/2013

Gerenciando assets com o Bower

Bower

O Bower (bower.io), criado pelo galerê do Twitter, é um "gerenciador de pacotes para web", mas especificamente para pacotes de Front-end.

A ideia por trás dele é bem simples: você lista as dependências de JS (jQuery, jQuery Highlight, Backbone e etc.) em um arquivo bower.json que fica dentro do seu projeto, e controla a instalação/atualização desses pacotes por linha de comando.

Intalando o Bower

Antes de tudo, você vai precisar do Node.js e do NPM instalados na sua máquina.

Agora é só usar o NPM para instalar o Bower globalmente no seu sistema:

1 npm install -g bower

Instalando pacotes com o Bower

Agora você pode instalar pacotes de três formas diferentes:

1 # Instala os pacotes definidos no bower.json do seu projeto
2 bower install
3 # Instala um pacote específico
4 bower install <package>
5 # Instala uma versão (git tag) de um pacote
6 bower install <package>#<version>

Onde <package> pode ser um dos seguintes itens:

  • O nome de um pacote registrado no Bower, por exemplo jquery
  • Um repositório Git remoto, por exemplo git://github.com/someone/some-package.git (público ou privado)
  • Um repositório Git local, por exemplo /var/www/jquery.git/
  • Um atalho para um repositório no GitHub, por exemplo someone/some-package
  • A URL de um arquivo zip ou tar.gz

Todos os pacotes serão instalados numa pasta bower_components dentro do seu projeto. E a ideia é que você nunca altere o conteúdo dessa pasta, nem dos pacotes dentro dela. Por isso, uma boa é colocá-la no seu .gitignore.

Definindo as dependências do seu projeto no bower.json

O conteúdo do arquivo do seu bower.json descreve o seu projeto e suas dependências num projeto onde usamos o jQuery e o Angular.js. Ele seria mais ou menos assim:

1 {
2   "name": "meu-projeto",
3   "version": "0.0.0",
4   "dependencies": {
5     "jquery": "master",
6     "angular": "1.0.7"
7   }
8 }

Após rodar o comando de instalação:

1 bower install

Veríamos o seguinte output:

 1 bower cloning git://github.com/angular/bower-angular.git
 2 bower cached git://github.com/angular/bower-angular.git
 3 bower fetching angular
 4 bower cloning git://github.com/components/jquery.git
 5 bower cached git://github.com/components/jquery.git
 6 bower fetching jquery
 7 bower checking out angular#v1.0.7
 8 bower copying /Users/digdin/.bower/cache/angular/ef2188def21eb1bbd1f1792311942a53
 9 bower checking out jquery#2.0.2
10 bower copying /Users/digdin/.bower/cache/jquery/29cb4373d29144ca260ac7c3997f4381
11 bower installing angular#1.0.7
12 bower installing jquery#2.0.2

E com isso acabamos de instalar o Angular.js (1.0.7) e o jQuery (2.0.2) no nosso projeto!

Se amanhã sair outra versão do jQuery, podemos atualizá-lo com:

1 bower update

E o jQuery será atualizado, mas o Angular permancerá na versão 1.0.7, pois foi assim que definimos no nosso bower.json.

Incluindo assets instalados com o Bower

Claro que esse passo é opcional se você estiver incluindo assets de outra forma (Sprockets?). Mas vou deixar aqui um pequeno exemplo para não ficarem dúvidas.

Para incluir os arquivos de um projeto, não existe magia negra, é só usar o caminho completo:

1 <script src="/bower_components/jquery/jquery.min.js"></script>
2 <script src="/bower_components/angular/angular.min.js"></script>

Conclusão

Acredito que o Bower tenha bastante futuro, pois estamos cada vez mais tirando as dependências de dentro dos nossos projetos e repositórios, deixando apenas o que é realmente único e importante para a aplicação.

Até a próxima!

Comentários
Included file post/disqus_thread.html not found in _includes directory