Bower
a package manager
for the web
@lucasmazza
disclaimer
esta não é uma introdução prática ao Bower
Nando Vieira @ Guru SP
Slides @ fnando.me/np
Post @ fnando.me/nq
"Bower is a package manager for the web.
It offers a generic, unopinionated solution
to the problem of front-end package
management."
formato padrão
para distribuição
versão (tag)
URL de um repo
commit
diretório
standalone
manifesto para
definir dependências
module#518331e7d5 vendor/assets/components/module
jquery-pjax#1.7.3 vendor/assets/components/jquery-pjax
└── jquery#2.0.3
momentjs#2.1.0 vendor/assets/components/momentjs
jquery#2.0.3 vendor/assets/components/jquery
Distribuindo seu
código em pacotes
Semantic Versioning
http://semver.org/
Defina os entrypoints
Use o ‘main’ para definir os
arquivos que o seu pacote expõe
Defina os entrypoints
Disponibilizar versão precompiladas
e minificadas não é nada mal :)
$ bower install jquery
jquery-migrate.js
jquery-migrate.min.js
jquery.js
jquery.min.js
jquery.min.map
Não empacote tudo
Remova arquivos desnecessários do
seu pacote com a opção do ‘ignore’.
$ bower install bootstrap
$ ls bower_components/bootstrap | wc -l
28
ಠ_ಠ
documentação
travis.yml & amigos
exemplos
LESS, CoffeeScript, SCSS
Gruntfile, Rakefile, Makefile
✗
JS/CSS
imagens e fontes
LICENSE
README.md
CHANGELOG.md
✓
Teste o seu pacote
$ bower install ~/code/github/thing
$ ls bower_components/thing
Use e abuse do Git
stable branches para bugfixes
version tags como referência
Utilizando
Bower no seu projeto
Pacotes no seu VCS
nem todos desenvolvedores
(e servers) precisam ter Node.JS
Integre o Bower ao
stack da sua equipe
Ruby / Rails
Sprockets 2.10 +
AMD
rpflorence/bower-import
Grunt
stephenplusplus/grunt-bower-install
Usando outra coisa?
Contribua com
novas ferramentas
Obrigado!
https://twitter.com/lucasmazza
https://speakerdeck.com/lucas

Lucas Mazza: Bower