5分でbowerをRailsに導入する
プロジェクトでjsのライブラリをどうやって管理するかみたいな話を隣の人としてて、
- jquery-railsとかgem使う
- bundle updateで依存地獄なきにしもあらずなので、
app/assets/javascript/vendor/
とかに置く - いやいやそれなら
vendor/assets/
以下でしょ - bowerって最近なうい感じがする
ということで、bower使うと楽なんじゃないかみたいな結論にいたった。
https://github.com/twitter/bower
Twitter社が作っているアセット管理ツールで、Twitter社が作ってるなら安心だろうみたいな感はあるけど、シンプルで使いやすい。 nodeで作られてるのでnpmでinstallする。
$ npm install -g bower
bower installすると$HOMEに.bowerが作成されてそこにライブラリがキャッシュされる。
$ bower install jquery backbone underscore
Railsアプリでbowerを使うには、Rails.rootで.bowerrcとcomponent.jsonを書く。
// .bowerrc { "directory": "vendor/assets/components" }
// component.json { "name": "Project name", "dependencies": { "jquery": "~1.9.1", "underscore": "~1.4.4", "backbone": "~0.9.10", "jquery.clickex": "https://gist.github.com/yoppi/4942811/raw/7b86d0b76addfd27c480fb5920a5a93af7940831/jquery.clickex.js" } }
bower installすると、.bowerrcで指定したディレクトリにインストールしてくれる。 自分で書いたライブラリをgistにおいててもbowerで管理できる。便利。 あとは、AssetPathを通してapplication.jsに書く。
# application.rb config.assets.paths << Rails.root.join('vendor', 'assets', 'components')
//= require jquery/jquery-min //= require underscore/underscore-min //= require backbone/backbone-min //= require jquery.clickex/index
いろいろスッキリ管理できるのでbower便利だと思った。