今回はbower-rails
のDSL版を使ってフロントエンドのパッケージ管理を幸せにしようと思います。
そもそもBowerって何?
- Webのフロントエンド(css/js等)のパッケージ管理ツール
- Railsに依存することなく管理ができる
-
*-rails
みたいにバージョンアップごとに管理する必要がなくなる
検証環境
- OS X Yosemite 10.10.4
- Ruby 2.2.2
- Rails 4.2.1
- node 0.12.2
- npm 2.7.5
準備
Git
- bower-railsで利用するパッケージ についてはgitで管理しないので
.gitignore
に下記を挿入する
.gitignore
vendor/assets/bower_components
Node.js
-
brew install node
でnode.js
をインストール -
npm install -g bower
でbowerをインストール
RubyGems
-
Gemfile
に以下を追加
Gemfile
group :development, :test do
gem 'bower-rails'
end
rails new
した際に生成されるjquery-rails
についても後からbower-rails
でインストールするので削除してもOK
-
bundle install --path=vendor/bundle
で当該gemをインストール
bower-railsでパッケージのインストール
今回はDSLを使う
-
rails g bower_rails:initialize
でBowerfile
を生成 -
Bowerfile
に使用したいパッケージを以下のように記述する※ 先ほど
jquery-rails
を削除した場合はjquery-ujs
をBowerfile
に記述しないとjquery-ujs
がない状態なので色々動かなくなるよ
Bowerfile
asset 'jquery-ujs'
asset 'bootstrap-sass'
asset 'fontawesome'
-
rake bower:install
を実行してBowerfile
内のものをvendor/assets/bower_components
にインストール
bower-ralisでインストールしたパッケージの有効化
-
vendor/assets/bower_components
以下のパスを記述すること -
require
するコンポーネント名は小文字でなければいけないっぽい
app/assets/javascripts/application.js
//= require jquery
//= require jquery-ujs
//
//= require bootstrap-sass
// ...
//= require_tree .
app/assets/stylesheets/application.css
/*
*= require bootstrap-sass
*= require fontawesome
*
*= require_tree .
*= require_self
*/
- 有効化されなかったりエラーが出る場合は
bower_components
以下のPATHを確認してみてください
DSLを使いこなす
bower-rails
のDSLを使いこなすことで以下のようなことが可能になります。
- assets pathの指定
- 指定URLのリポジトリの使用
- 指定したバージョンの設定
- リポジトリ内のファイルの指定
詳しくは以下を参考にしてください。
bower-rails - Ruby DSL configuration
サンプル
GitHubにサンプルをpushしたので参考程度に。
bower-rails-dsl