Bowerとrailsの統合
方法
- Railsアプリケーションのルートディレクトリに
.bowerrc
を作成 application.rb
の設定でBowerのインストールディレクトリvendor/assets/components
をAssetsパスに通すapplication.js
等から呼び出し
.bowerrc
{
"directory" : "vendor/assets/components",
"json" : "component.json"
}
config/application.rb
# config/application.rb
config.assets.paths << Rails.root.join('vendor', 'assets', 'components')
application.js
//= require jquery/jquery-min
//= require string.js/lib/string.min.js
bower-rails
railsとbowerの統合はbower-railsのgemを使用する手もあります。
bower-railsを使用する場合、独自のDSLが用意されています。
独自DSLを使う場合は、Jsfileというファイルを作成し、以下のように記述します
Jsfile
assets_path "assets/javascripts"
# Puts files under ./vendor/assets/javascripts
group :vendor do
js 'jquery', '2.0.0'
js 'jquery-ujs' # Assummes it's latests
js 'jquery-autopager', 'http://lagoscript.org/files/jquery/autopager/jquery.autopager-1.0.0.js'
end
インストールのコマンドは
rake bower:dsl:install
実行するとvendor/assets/javascripts以下にbower.jsonが作成され、それをもとにbower installがされてvendor/assets/javascripts/components以下にJSが入ります。
このままではassetsで使えないので、vendor/assets/javascripts/componentsをassets pathに追加ます。
config/application.rb
# config/application.rb
config.assets.paths << Rails.root.join("vendor", "assets", "javascripts", "components")
最後にJSのrequireのパスを書き換えて完了です。今回のJsfileだと下記のような感じになります。
//= require jquery
//= require jquery-ujs/src/rails.js
//= require jquery-autopager/index.js