Uma ficha limpa
Recentemente, comecei a portar algumas funcionalidades de mono-rail para um novo aplicativo Rails 4. Eu não sei qual é o formato do seu código de front end, mas a base de código em que estou trabalhando tem 6 anos de dependências de front end não documentadas e hackeado um dos arquivos JS. Com uma ficha limpa, decidi ver o que mudou nesse meio tempo para tornar possível o gerenciamento de bibliotecas JS.
Bower
Então, se você vem do Rails, o Bower é como RubyGems para JS de front end. O Bower não se preocupa com muitos detalhes de implementação do módulo, então você pode usá-lo com as bibliotecas mais populares agora e, se não puder, é um fork ou pull request.
O que eu encontrei foi um plugin Rails chamado bower-rails
que tinha tarefas Rake para manipular o Bower e até mesmo fornecer um Gemfile
DSL como o chamado Bowerfile
para que os usuários Rails não precisassem criar um .json
arquivo de dependências.
Então eu instalei, adicionei meu Bowerfile
arquivo e executei rake bower:install
e não funcionou.
WTF está acontecendo?
Leia o código
Então as coisas não funcionaram, mas felizmente sou um programador. Abri o código que estava bem organizado, mas faltava testes, então procurei as coisas que não pareciam certas e comecei a escrever alguns testes com base no README
. Em uma hora escrevi alguns testes, encontrei o bug que estava me desligando, consertei e enviei um pull request.
Eu tenho um servidor de gem privado, então fui capaz de cortar um gem, implantar e seguir em frente, mas há um pull request esperando aqui – https://github.com/42dev/bower-rails/pull/38 então as coisas são um um pouco melhor para a próxima pessoa que vier e quiser usar o Bower para gerenciar suas bibliotecas JS no Rails.
Links
Página inicial do Bower: http://bower.io/
fonte bower-rails: https://github.com/42dev/bower-rails
diretório de componentes do bower: http://sindresorhus.com/bower-components/
Geminabox: https://github.com/geminabox/geminabox